Virtual Filesystem for Dropbox
Open a Dropbox folder as a VS Code workspace folder. It works on vscode.dev and on desktop.
- Offline. The folder is copied to this machine. You can read and edit with no connection. Your changes go to Dropbox when the connection is back.
- Live. Changes from your other devices show in seconds.
- Private. The extension talks only to Dropbox. There is no other server and no telemetry.
Start
- Run Dropbox: Open Folder from the Command Palette.
- A Dropbox page opens for the app "Virtual Filesystem for VS Code". Select Allow, copy the code, and paste it into VS Code. This is necessary one time on each machine.
- Select a folder.
With Settings Sync on, a new machine gets the extension and your list of folders automatically.
On vscode.dev, the folder is added to the workspace, and it opens again automatically each time you open https://vscode.dev. To stop this, right-click the folder and select Remove Folder from Workspace.
Status bar
| Shows |
Meaning |
Dropbox |
All changes are in Dropbox. |
Dropbox ↑3 |
3 changes are on their way to Dropbox. |
Dropbox: offline ↑3 |
No connection. 3 changes wait on this machine. |
Dropbox: sign in |
Select to sign in. |
Conflicts
If a file changed on this machine and in Dropbox at the same time, the Dropbox version stays. Your version is saved beside it with "conflicted copy" in its name, for example a (Brian Mosher's conflicted copy).txt. A message offers a comparison.
Limits
- Do not clear the browser data while changes wait. On the web, the local copy is in browser storage. Changes that are not uploaded are only there.
- Full-text search and Quick Open see only open files. VS Code does not let a published extension supply search for a virtual folder.
- Files larger than 150 MB cannot be uploaded.
- Open the same Dropbox folder in only one window on each machine.
- The automatic copy stops at 500 MB for each folder, and does not include files larger than 25 MB or folders such as
node_modules and .git. Those files stay visible and download when you open them. See the settings.
Settings
| Setting |
Default |
|
dropboxfs.mirror.maxTotalMB |
500 |
Maximum size of the automatic copy of each folder. |
dropboxfs.mirror.maxFileMB |
25 |
Larger files download only when you open them. |
dropboxfs.mirror.ignore |
node_modules, .git, … |
Folder names that are not copied automatically. |
dropboxfs.syncToken |
off |
Send the sign-in token through Settings Sync, so that a new machine needs no sign-in. The token is then on the Settings Sync servers. |
dropboxfs.appKey |
built-in |
Your own Dropbox app key (scoped app, Full Dropbox, PKCE). |
Dropbox: Sign Out and Erase Local Cache revokes the token and deletes the local copy.
Development
npm install
npm test # mirror logic against an in-memory Dropbox
npm run live # the same logic against the real Dropbox, in a temporary folder
npm run build
npx @vscode/test-web --browserType=none --extensionDevelopmentPath=. # then open http://localhost:3000