# Dropbox Infinite

**URL:** https://forum.syncthing.net/t/dropbox-infinite/7237
**Category:** Feature
**Created:** [April 26, 2016, 12:31pm UTC](https://forum.syncthing.net/t/dropbox-infinite/7237 "2016-04-26T12:31:23Z")
**Posts on this page:** 10
**Page:** 1

<div class="post-metadata">

### Author: ![urza](https://forum.syncthing.net/user_avatar/forum.syncthing.net/urza/32/997_2.png) [@urza](https://forum.syncthing.net/u/urza)
#### Post date: [April 26, 2016, 12:31pm UTC](https://forum.syncthing.net/t/dropbox-infinite/7237/1 "2016-04-26T12:31:23Z")

</div>

Hi I tought I post this here just for inspiration… Dropbox has anounced new feature: [https://blogs.dropbox.com/business/2016/04/announcing-project-infinite/](https://blogs.dropbox.com/business/2016/04/announcing-project-infinite/) HN discussion: [Dropbox Project Infinite | Hacker News](https://news.ycombinator.com/item?id=11570888)

Looks like BTSync has something similar…

Iknow this feature has already been discussed here and that syncthing is opensource community effort without resources of these two conpanies… so I dont want to imply any pressure… 🙂

---

<div class="post-metadata">

### Author: ![calmh](https://forum.syncthing.net/user_avatar/forum.syncthing.net/calmh/32/15311_2.png) [@calmh](https://forum.syncthing.net/u/calmh)
#### Post date: [April 26, 2016, 12:44pm UTC](https://forum.syncthing.net/t/dropbox-infinite/7237/2 "2016-04-26T12:44:47Z")

</div>

Clarifying what this actually is about, it looks to me like on demand download of files when they are opened/read (of course coupled with cloud storage, it being Dropbox).

That’s very similar to [the syncthing-fuse project](https://github.com/burkemw3/syncthingfuse) @burkemw3 hacks on.

> SyncthingFUSE allows you to see all of the files in shared Syncthing folders, but only stores a fixed amount of data locally.
> 
> When you open a file, the contents are served from a local cache, if possible. If the contents are not in the cache, then SyncthingFUSE asks peers for the contents and adds them to the cache. If no peers are currently available for the file, then opening the file will fail.

We just suck at doing press releases for cool stuff people create. 🙃

---

<div class="post-metadata">

### Author: ![urza](https://forum.syncthing.net/user_avatar/forum.syncthing.net/urza/32/997_2.png) [@urza](https://forum.syncthing.net/u/urza)
#### Post date: [April 26, 2016, 2:15pm UTC](https://forum.syncthing.net/t/dropbox-infinite/7237/3 "2016-04-26T14:15:20Z")

</div>

Wow I didnt know about that…

Is it only for PCs or is there any chance to have something similar on android?

---

<div class="post-metadata">

### Author: ![burkemw3](https://forum.syncthing.net/user_avatar/forum.syncthing.net/burkemw3/32/1849_2.png) [@burkemw3](https://forum.syncthing.net/u/burkemw3)
#### Post date: [April 26, 2016, 3:24pm UTC](https://forum.syncthing.net/t/dropbox-infinite/7237/4 "2016-04-26T15:24:09Z")

</div>

Unfortunately, there is no PC nor mobile support right now. It’s Linux and OS X for the moment.

Windows support appears possible via Dokan, but I don’t have any Windows machines, so just developing it would be exceedingly difficult. SyncthingFUSE has the currently closed [issue #7](https://github.com/burkemw3/syncthingfuse/issues/7) for this.

Android support also appears possible, although, it will likely take a rather different implementation. There is additional discussion about Android in [syncthing #193 Selective Sync](https://github.com/syncthing/syncthing/issues/193) and [syncthing-android #81 Selective download](https://github.com/syncthing/syncthing-android/issues/81).

---

<div class="post-metadata">

### Author: ![Nutomic](https://forum.syncthing.net/user_avatar/forum.syncthing.net/nutomic/32/270_2.png) [@Nutomic](https://forum.syncthing.net/u/Nutomic)
#### Post date: [April 26, 2016, 4:09pm UTC](https://forum.syncthing.net/t/dropbox-infinite/7237/5 "2016-04-26T16:09:13Z")

</div>

Could you change SyncthingFUSE so that there’s a Rest API to access files, and the whole FUSE runs outside of Syncthing? Then we could just use that same API on Android.

Edit: And it could also be integrated into eg Synctrayzor for Windows support.

---

<div class="post-metadata">

### Author: ![calmh](https://forum.syncthing.net/user_avatar/forum.syncthing.net/calmh/32/15311_2.png) [@calmh](https://forum.syncthing.net/u/calmh)
#### Post date: [April 26, 2016, 5:11pm UTC](https://forum.syncthing.net/t/dropbox-infinite/7237/6 "2016-04-26T17:11:35Z")

</div>

We could probably integrate that into Syncthing as well. Consider a folder that by default doesn’t sync or scan. A rest call could tell Syncthing to “activate” a given file, which it would then start treating as usual (downloading updates for and scanning for local changes). Something similar to remove and unregister a file from the local device.

Presenting the fuse or android api layer could then happen outside.

---

<div class="post-metadata">

### Author: ![Nutomic](https://forum.syncthing.net/user_avatar/forum.syncthing.net/nutomic/32/270_2.png) [@Nutomic](https://forum.syncthing.net/u/Nutomic)
#### Post date: [April 26, 2016, 5:56pm UTC](https://forum.syncthing.net/t/dropbox-infinite/7237/7 "2016-04-26T17:56:58Z")

</div>

In that case, there should probably be an equivalent call to “deactivate” the file again. Or deactivate when it isn’t used any more.

My idea was to do the file access via the Rest API (with methods like `/file/read`, `/file/write` etc). I’m not sure which option is better though.

---

<div class="post-metadata">

### Author: ![capi](https://forum.syncthing.net/user_avatar/forum.syncthing.net/capi/32/2226_2.png) [@capi](https://forum.syncthing.net/u/capi)
#### Post date: [April 26, 2016, 7:59pm UTC](https://forum.syncthing.net/t/dropbox-infinite/7237/8 "2016-04-26T19:59:55Z")

</div>

If we’d add a “External File Storage” mode (similar to the “External File Versioning”) mode, we could also do cool stuff (on Android and on Linux).

Make it so, that the first argument is the desired operation (e.g. `list`, `write`, `read`, `delete`) and content of the file to be modified can be read via `stdin` / `stdout` and exit codes. This would be a “virtual filesystem” via scripts / external processes. A very easy filesystem could even be implemented in `bash` then. 🙂

---

<div class="post-metadata">

### Author: ![calmh](https://forum.syncthing.net/user_avatar/forum.syncthing.net/calmh/32/15311_2.png) [@calmh](https://forum.syncthing.net/u/calmh)
#### Post date: [April 26, 2016, 8:17pm UTC](https://forum.syncthing.net/t/dropbox-infinite/7237/9 "2016-04-26T20:17:45Z")

</div>

It’s Not Quite That Simple™, but a virtual filesystem is in the works. 😉

[https://github.com/calmh/syncthing/blob/changeset/lib/fs/filesystem.go#L23-L44](https://github.com/calmh/syncthing/blob/changeset/lib/fs/filesystem.go#L23-L44)

---

<div class="post-metadata">

### Author: ![urza](https://forum.syncthing.net/user_avatar/forum.syncthing.net/urza/32/997_2.png) [@urza](https://forum.syncthing.net/u/urza)
#### Post date: [May 1, 2016, 1:15pm UTC](https://forum.syncthing.net/t/dropbox-infinite/7237/10 "2016-05-01T13:15:00Z")

</div>

This might also be of interest.

> **[Infinit Storage Platform](https://infinit.sh/)**
>
> Infinit allows for the creation of flexible, secure and controlled file storage infrastructure on top of public, private or hybrid cloud resources.

They say they are opensourcing the project…

Also I find this interesting - FUSE version for Windows - Dokany:

> **[dokan-dev/dokany](https://github.com/dokan-dev/dokany)**
>
> dokany - User mode file system library for windows with FUSE Wrapper
