resucutie / localbooru

Cross platform local booru collection that exclusively works on local storage, without selfhosting
GNU General Public License v3.0
28 stars 1 forks source link

Feature Request: Android - Local Network Storage Support (SMBv2/SMBv3) #25

Open FrameEnder opened 4 weeks ago

FrameEnder commented 4 weeks ago

Is your feature request related to a problem? Please describe. Yes, this is related to the limited nature of internal storage, and the lack of feature support for a local network storage solution

Describe the solution you'd like I'd like to propose a solution of either implementing (SMBv2/SMBv3) Network Drive support either via an in-app, or through leveraging support from an external app that specializes in the storage solution, the means to do so exists within the Android SDK, and has been seen for example within the "Samsung My Files" app on Samsung devices, but someway whatsoever to read/write to an external HDD on the Network would be a large solution

Describe alternatives you've considered I've currently developed a script that takes images, and text files which are both associated to each other for example, 1.png, and 1.txt in the same dir, I can then import those images and tag text files into the database, by writing directly to the repoinfo.json file, and sending the images to both the files, and thumbnails folders, compression is still a WIP, but possible although most of my images are already compressed to 100-200 kb depending.

anyway...

I can use this script to read/write data between any network connection, so what I have been doing is just connecting over an FTP connection to my phone, and sending all the data over with that script, using a numerical name offsetting script (I also made) beforehand to keep any new images numerically categorized (to keep from identical naming conventions overwriting data) I plan to make all the steps blend, so I will only have one python script, but personally I'd rather not do this more then once a day, and save on my Network bandwidth, and personal phone storage (considering my device does not support MicroSD's) if I can by just making one single source for the Booru, which I have done on Windows/Linux thanks to the open default file solution including the standards required, but cannot do currently on Android as it is currently configured.

Additional context

here is my old comment before I summarized it using the methods provided

Within Windows I can just point the location of the booru folder to one I have in my Network Drive, and that way I can host my entire collection on a private local server, so all of my computers have access to that Booru.

Although the current Android App doesn't seem to have that capability, despite the file browsers on Samsung (at least the "Samsung My Files" app) supporting locally hosted Network Drives (SMBv2/SMBv3).

It seems your app is likely using a locked down File Browser of some kind, one that doesn't have Network Storage access, and my phone doesn't have support for external storage, so what I have is all I got (128 GB), even if it did have sd support though I think it would be more convenient to pull from a central database as apose to multiple different ones. I know I'm an outlier, not many have 10k+ of images in their local collection, but your Local Booru app is by far the best I've seen as far as features, and stability.

tldr;

In short I'd like to see either built into the app, or provided by a separate app that you can leverage.. anyway you can to pull the Booru database from any local (SMBv2/SMBv3) Network Storage device. Like you'd be able to with internal storage.

resucutie commented 4 days ago

I've been considering for a long while to make LocalBooru able to connect to a separated server, either hosted automatically on localhost or not, but that would add a bunch of issues and you probably would be better off with selfhosting solutions such as Schzrubooru (? never got the name right) or Hydrus network

At the moment I cannot recommend any app that can let other apps access SMB other than this, which I have to test with LocalBooru