Selective download and placeholder files

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