Selective download and placeholder files

Well selective sync solves this doesn’t it? You select folders you want. Once you are done, you unselect them (and perhaps part of that we delete the unselected files) and select something else?

How is seeing files which are synced in Syncthing any more beneficial than using the explorer?

Sorry, I’m not sure if I’m missing something here. My point is that if I were to share, say my folder called Music, I can’t share it to my phone if Music contains my entire music collection (as it does, at 170GB) because my phone only has a max capacity of 16GB. I could then create different folder shares from within my Music folder so that it works within the constraints of my phone. That would work, but I would be less inclined to use syncthing as I could do pretty much the same thing with adb push or similar utility.

1 Like

I think you don’t understand what selective sync is. You choose which subfolders within a folder you want to sync.

OK. Let me work through the syncthing sharing process again. My comments so far are based mostly on the default behaviour of syncthing, which if I’m correct to say, is to copy over all files. For btsync the default behaviour is to only copy over the directory structure. I’ll get back again. Thanks for your time. :slight_smile:

UPDATE: I’ve got syncthing for Android version 0.5.18 on my phone. I have advanced Folder Picker selected in settings, but beyond that I don’t see any selective folder picking options. Is it possible this version of the app doesn’t yet support selective folder picking?

UPDATE 2: I’ve gone through the process of sharing a smaller collection of folders again. I don’t see any where I can selectively download folders, and all folders are downloaded on the target device by default.

Android app version: 0.5.18 Desktop version: 0.10.26

Is useful if the file is toooooooooo deep down on file tree.

But this is something that have to wait for the new interface. This feature requires to see the files of the folder on the interface in two different modes:

  • file tree;
  • flat list.

For the moment, I think it’s too complex. The new interface is just a draft yet.

1 Like

This is a future feature we are talking about…

1 Like

Ha ha. So in that case I do understand what selective folder picking is. :smile:

I’m guessing it would be selective folder picking from a copied over directory structure? If so, then it would still be nice if we had syncthing also create an updated list of downloaded files from which we could work, as the directory traversing would be a pita, as I said earlier.

I get what you mean about the folder sync. I’m working on Wireshark protocol docoder and Java client to run some experiments.

1 Like

Any idea on when this feature is going to be released?

I don’t think anyone is working on the feature of this topic.

That’s too bad. I was really looking forward to it.

2 Likes

Yeah, me too. Without some feature like this that provides flexible access to a media store, using syncthing from from mobile loses a good selling point. btsync already has something close (the placeholders) but the license fee is a bit of a bummer.

For Android, we have and issue here.

This still needs support from syncthing itself though, and it would only work on 4.4+ (at least initially). Though that accounts for ~70% of our users.

1 Like

@Nutomic: “… the actual point of this is that you can access files remotely. So you don’t have to sync your 10 GB of music to your phone just to listen to a single song.”

Exactly! Thanks - and keeping my fingers crossed. :slight_smile:

If somebody wants to work on this … might actually support this with a bounty if someone takes it up.

I have been looking for (and thinking about building) a file sync system that supports something very similar to the selective download and placeholder files discussed in this thread.

To create a user experience that users are familiar, I have been considering using FUSE to present the files. The user navigates file trees and interacts as they normally do. When a file is opened, the hypothetical SyncThing-FUSE checks for the file in a local cache. If it doesn’t exist, the file is requested from peers and placed into the cache. Then, the client reads the file from the cache. Written files are placed into the cache, and IndexUpdates are published to peers.

FUSE is supported on OS X and Linux. Other platforms would require different solutions.

I’m sure there will be complications with certain programs (e.g. iTunes mentioned above) and OS features (e.g. previewing images).

I have minimal experience with SyncThing and FUSE, but from what I’ve read about both (including BEPv1), I haven’t found any show stoppers.

@AudriusButkevicius and others, what reasons can you think of that I shouldn’t continue to investigate this approach?

1 Like

It’s perfectly doable. You’d need to iron out some details, for example. what happens if the fuse process crashes before you manage to spread what you have in cache, etc.

The way I’d do this would be as follows:

  1. Write in Go (so you don’t need to reimplement the protocol package)
  2. Write a library which allows to list files, read chunks of files straight off a different peer, etc. Potentially make cli out of that.
  3. Use the library to make fuse bindings via https://github.com/hanwen/go-fuse

I always imagined selective sync as a simple GUI thing, where the user can set the folder mode to “selective” and then choose the files/folders in an expandable tree. This info is stored in .stselect and works together with .stignore so that the user can e.g. sync files from selected folder “holiday 2015” but only JPGs, etc. There was a PR a few months ago but it was not continued

This whole thread is about something else.

@burkemw3 as someone coming from AeroFS hybrid cloud, I think this is how their approach on mobile worked by default, with one exception. The Android app would display the folder structure/list of files without syncing any. If the mobile user wants access to the files, it requests it (like you described) and downloads. The exception is that changes on mobile do not propagate to peers. In this sense, the mobile client is essentially a viewer and not a syncer. The main use case for me in that instance is the following:

  • I download syncthing on my phone. Since the default is not to download anything or sync anything my phone does not die.
  • I need to get a PDF to show to my boss real quick or an article to read on the airplane before boarding.
  • I search the directory structure of the “synced” folders and select a few to download.
  • That is it. No syncing changes made on mobile to peers.

This is exactly the approach the AeroFS hybrid cloud used (clumsily) and it was a blessing for me. Really, how often do people expect to seriously change files from their phones and expect to propagate them anywhere? It seems to me that would be a rare occurrence. Just my two cents.

1 Like