top | item 20844363

Dropbox no longer follows symlinks to items outside of your Dropbox account

202 points| whoisnnamdi | 6 years ago |help.dropbox.com | reply

211 comments

order
[+] codetrotter|6 years ago|reply
I see multiple comments here saying that this is unfortunate because people were using symlinks in order to automatically have backups of program configurations etc.

But the solution is simple, just switch around which is the real file and which is the symlink.

So where you used to have symlinks like

  ~/Dropbox/.bashrc -> ~/.bashrc
  ~/Dropbox/.vim —> ~/.vim/
and so on, remove the old symlinks and place the real files in ~/Dropbox/ and then symlink the other locations there.

  ~/.bashrc -> ~/Dropbox/.bashrc
  ~/.vim -> ~/Dropbox/.vim/
and so on.

This is similar to what I do with some of my files in ~/bin/

Many of the files I have in my ~/bin/ are symlinks to files that live in git repositories.

For example, I have a few “alias commands” (shell scripts that wrap a longer command) in ~/bin/

  ~/bin/st -> ../src/github.com/ctsrc/shell-command-aliases/bin/st
(Aside: Why not aliases in my bashrc, you ask? Because I use a few different operating systems and eventually realized that rather than trying to unify OS specifics and shared aliases in bashrc it was much simpler to maintain the aliases as wrapping shell scripts.)
[+] Erlich_Bachman|6 years ago|reply
This is not a "solution", this is at best a workaround. Moving around important system files and replacing them with symlinks means you are changing your system and everything in it just because one small program that doesn't want to play by the rules can do what it wants.

The real solution is to use other software than Dropbox, that plays by the rules and cares about its users.

[+] huhtenberg|6 years ago|reply
This wedges Dropbox in as a critical system dependency.

Dropbox screws up - and you no longer have your core config files needed for basic system operation.

[+] topologistics|6 years ago|reply
This seems dangerous and gives me the heebie jeebies, but I can't put my finger on exactly why. It just feels like bad practice to move my important files somewhere else and link to them, but I've never trusted the cloud anyway. It is in the nature of clouds that they change and sometimes go away. I don't want my .bashrc going away.
[+] aleem|6 years ago|reply
This is probably the desired effect that Dropbox wanted. There is little reason to remove the symlink feature that worked perfectly well - it is a strategic move at best.

Reversing the symlinks means Dropbox becomes the source of truth and the dependency on Dropbox increases.

Personally, I used this to easily backup my Downloads and Documents.

They just broke all clients using this feature.

[+] cstejerean|6 years ago|reply
This is what I’ve always done, I didn’t even know that the other way was an option, and honestly I don’t like the idea of Dropbox reaching out of it’s sandbox at ~/Dropbox to read or write files by following symlinks. That sounds like a security risk to me.
[+] tommymachine|6 years ago|reply
This should be sarcastic, but it seems like it’s not. “Just move your system files to Dropbox, and replace them with symlinks!” Sheesh!
[+] yoz-y|6 years ago|reply
This is what I did for my tmux, vim and zsh configuration. As an added benefit it makes it easier to sync configs between computers.

On work computers I do the same but with git.

[+] Someone|6 years ago|reply

  /.bashrc -> ~/Dropbox/.bashrc
  ~/.vim -> ~/Dropbox/.vim/
That works for directories, but not for files such as ~/.bashprofile, if tools update such files by

  - writing the updated file under a different name
  - deleting the old file
  - renaming the updated file
as the second step would delete the link (or fail; I’m not too familiar with the UNIX APIs)

(I think that’s a fairly common strategy. I tried checking whether vim uses it, but got lost in https://github.com/vim/vim/blob/master/src/fileio.c; that file is too large to comfortably read on an iPad (try guessing how many lines of C it takes to ”Read lines from file "fname" into the buffer after line "from"”)

[+] netsec_burn|6 years ago|reply
Why not use a hardlink?
[+] thenickperson|6 years ago|reply
FYI this is easier to do with GNU stow, which can take a directory of configs and symlink it to another directory (like $HOME).
[+] Spooky23|6 years ago|reply
The problem lies where you have constrained space on a system, and you want a folder on an external or alternative drive.
[+] kccqzy|6 years ago|reply
This is one of the most important reasons I've kept using Dropbox despite having a much larger storage space on Google Drive or elsewhere. Dropbox once had superior handling of symlinks that deals with plenty of weird edge cases gracefully. I don't think I have any reason to use Dropbox any more.
[+] ehsankia|6 years ago|reply
I've honestly wanted to drop Dropbox for a while now. Over the past year or two, it has been becoming a worst product every single time I interact with it and also a lot spammier trying to get me to upgrade to Premium. They put a very low device limit and keep removing features. I honestly don't see any reason to use it over Google Drive anymore.
[+] beambot|6 years ago|reply
Didn't they already drop most Linux support?
[+] donatj|6 years ago|reply
Why does Dropbox just keep jumping the shark? Every fricken turn breaks something for me. This breaks the entire way I have my systems set up.

They were amazing software and now they’ve eroded away most of it such that they have very little over their competitors.

At this point the only reason I stay is they sync macOS extended file tags and comments; both things I make heavy use of. To my knowledge Syncthing doesn’t, nor Google Drive for that matter.

[+] veidr|6 years ago|reply
Dropbox is still OK for easily sharing files with other, especially movies and stuff that its sharing web UI supports.

But in 2019 it is basically an inferior and antiquated tool for syncing your own files.

I moved to the open-source SyncThing[1] some years ago, which gave me:

1.) the ability to sync any arbitrary set of folders I want, which of course completely obviates the need to care about things like this issue (i.e., no need to use symlinks to sync other folders, because you can just sync those folders themselves)

2.) the ability to actually sync folders that contain symlinks, as many types of software projects do (Dropbox and many other purported sync tools can't do that, which means there are many common types of folder that they can't sync without corrupting them by replacing the symlink with the contents of the symlink destination) EDIT: Or, have they fixed that now, and is that why they are making this announcement? I am not sure. Back when I used Dropbox for syncing, it couldn't sync a folder containing a symlink, but this may no longer be true. (?)

3.) better sync reliability

4.) better sync performance

5.) completely superior security story; end-to-end encryption means you are in control of who can access your files (no access for employees, governments, etc)

The tradeoffs are:

a.) a little bit more work to set up (but it's really just a little bit... I walked my dad through it over the phone... basically the same amount of work as getting your credit card billing setup on Dropbox)

b.) weaker story on mobile, no iOS app

c.) no "cloud" so you have to do your own (e.g., leave an iMac running 24/7 back at your house or something)

All in all, after 2+ years I am extremely happy with Syncthing, and I don't think products like Dropbox have a very strong case to exist anymore, at least not for the original purpose of syncing folders full of computer files.

That problem has now been solved better, way more securely, and for free. (Which is probably why Dropbox seems to be trying to pivot to become some kind of enterprise team commmunication hub.)

[1] https://syncthing.net (if on a Mac just install the Mac app and it will install the other components for you)

[+] kranner|6 years ago|reply
> c.) no "cloud" so you have to do your own (e.g., leave an iMac running 24/7 back at your house or something)

> That problem has now been solved better, way more securely, and for free.

You haven't accounted for the cost and maintenance of the 24/7 iMac (or VPS) if one doesn't already have that, and not everyone does.

I'm also a happy SyncThing user but I wouldn't say it's as easy to use as Dropbox for the general user.

[+] esoterica|6 years ago|reply
> c) no "cloud" so you have to do your own (e.g., leave an iMac running 24/7 back at your house or something)

You really buried the lede right at the bottom didn't you? The entire point of a Dropbox type service is off-site cloud backups. If I have to buy and maintain a second server and leave it running 24/7 in my house (i.e. I'm not insulated against losing my data if my house burns down or a burglar breaks in) then clearly this product is providing an entirely different and far more limited service than Dropbox and is not an effective replacement for it.

[+] Schoolmeister|6 years ago|reply
> 2.) Back when I used Dropbox for syncing, it couldn't sync a folder containing a symlink, but this may no longer be true.

From the first paragraph:

"As of mid-2019, Dropbox no longer follows items outside of your Dropbox account that are linked to by a symlink."

In the next paragraph is explained how symlinks linking to files within your Dropbox folder still work.

[+] rdslw|6 years ago|reply
> But in 2019 it is basically an inferior and antiquated tool for syncing your own files.

IPO dates of most (once) cool tech startups signal time to search for replacement and time of approach change by them.

[+] dietr1ch|6 years ago|reply
I moved to Syncthing when they asked me to move to ext4.

I'm glad I did. Now my phone and tablet are first class citizens when syncing and I can have multiple roots shared between different devices. I wish I switched earlier.

[+] jplayer01|6 years ago|reply
Syncthing is great and has become a core part of my workflow. It's just really annoying that there's no iOS client. So I have this great sync service that only works across my Android phone, laptop and desktop, while my iPhone and iPad are stuck outside the loop. Which means I have to duplicate some of my workflow onto another service.
[+] GordonS|6 years ago|reply
I moved away from Dropbox years ago, after it pissed me off on Windows (basically, the Windows client was ludicrously inefficient, and there were constant sync conflicts).

I switched to Seafile, backed by Azure blob storage - so much better than Dropbox. The Windows client barely uses any CPU, sync conflicts only occur when I'd expect them to, and of course you can sync files regardless of whether they are in a fixed "Dropbox" folder.

I have Seafile and Minio running in containers, so it was super-easy to setup, and is a doddle to upgrade too.

Haven't looked back!

[+] Avamander|6 years ago|reply
Syncthing doesn't do symlink following at all which is really god damn annoying and stupid.
[+] i386|6 years ago|reply
Isn’t upgrading to ext4 trivial?
[+] sebst|6 years ago|reply
Maybe one of the most wanted feature in Dropbox (at least among developers) is a .dropboxignore file[0].

When Dropbox stops syncing symlinks to outside files and directories, the situations becomes a lot better. Placing node_modules/ or venv/ directories outside the the dropbox and just placing a symlink here, makes Dropbox a good option for code backups, again.

[0]: https://www.dropboxforum.com/t5/Dropbox/Ignore-folder-withou...

[+] GordonS|6 years ago|reply
This is also one of the top voted feature requests on the UserVoice site for OneDrive - it's sat there for years with no action. I don't get why they wouldn't want to have this, given it would reduce the amount of data they have to store.
[+] delinka|6 years ago|reply
My intuition says that Dropbox should never have followed (soft) links outside the 'boundaries' of the sync folder. It never occurred to me to expect it to work like that.

I have, however, use folders under Dropbox to sync local files into (make a change, sync over into Db); or even have a Db folder for git repos added as a remote (commit a change, git push dropbox branch.)

[+] nashashmi|6 years ago|reply
Symlinks are a terrific way to duplicate the presence of files in multiple places.

When Dropbox allowed Symlinks, and recommended Symlinks, it fundamentally changed the meaning of what Symlinks were. It focused it on its technique to emulate and a way to direct Dropbox to synchronize folders not necessarily in the Dropbox folder.

[+] Spivak|6 years ago|reply
I think the ‘correct’ behavior for Dropbox is to just back up the symlink. It should be treated like it was any other file.

Because now I can’t have a symlink in my Dropbox pointing to a machine-specific file outside the folder (like an env-vars file that’s different between MacOS and Linux)

[+] kbumsik|6 years ago|reply
What I don't understand about Dropbox in 2019 is that they are trying to limit features known to work without any issues. What's worse is that they do this with no particular reasons or explanations.

Why they are doing this recently?

[+] criddell|6 years ago|reply
If they can't explain how the change is an improvement or fix for some problem, then it probably isn't being done for the benefit of the customer.
[+] usaar333|6 years ago|reply
Dropbox never before supported symlinks as symlinks. (It would sync the target folder even if the target was in Dropbox, duplicating data).

Now symlinks are understood by the server, but ones targeting content outside Dropbox break.

[+] nashashmi|6 years ago|reply
Could they be adding feature of synchronizing multiple folder paths?

Or could they be changing the use case of the platform to sharing files instead of backing them up.

[+] Syzygies|6 years ago|reply
Finally! A symlink is a file like any other. You don't want sync software going off and "thinking" about what a symlink really means, anymore than you'd want sync software going off and "thinking" after finding porn on your computer. It is a user's responsibility to insure that a symlink is useful across sync'd computers, or to ignore the symlink.

A good test case is a MacOS Application Package. These often have internal symlinks that most users never notice, e.g. from "current" to a version of included software. A sync program that replaces the symlink with its contents simply bloats such an application, but it still works. A sync program that ignores a symlink breaks the application. In either case the mistake is "thinking" about the symlink rather than treating it like any other file.

There's still only one sync program that I know of that handles every issue like this correctly: Unison, written by a prominent computer scientist with astute community feedback. This is collectively a smarter brain trust than the sanctimonious support folks who have resisted my feedback at various sync software companies, sure that their unique approach is correct. Not only does Unison correctly handle symlinks, it also has a notion of an "atomic" directory, so that one doesn't for example hose a git archive modified at both ends, or a sparse disk image modified at both ends.

I use DropBox when I need the integration, to iOS or sharing with others. I sync the guts of each machine, for my private work, using Unison.

[+] krsdcbl|6 years ago|reply
Well, there goes my whole workflow of backing up my graphic projects into dropbox from their original location on our local server ...
[+] djklanac|6 years ago|reply
Primary reason for me to pay for Dropbox is symlinked files that act as a backup and remote file access.
[+] dreamcompiler|6 years ago|reply
How is this different from before? All my symlinks reside at odd (but convenient for me) locations in my file system outside my Dropbox folder. They all point to locations inside my Dropbox folder. Everything works perfectly, unless I make the mistake of creating a symlink inside Dropbox that points out; those have always exhibited strange behavior so I stopped using them long ago.
[+] fencepost|6 years ago|reply
If it's all on the same filesystem/partition you could use hard links instead, including on Windows (NTFS only though, and based on reading just now I'd forgotten that it's files-only).

It would also be interesting to see if on Windows it handles Junctions as hard links or soft - basically does this only affect shortcuts on Windows or also catch the less used filesystem option.

[+] telesilla|6 years ago|reply
Any alternative suggestions? SyncThing that is discussed here seems to need you to manage your own always-on system, which I suppose can be implemented via a cloud server?

I've been using Dropbox for years but this change means I need to re-organise, so may as well look at other options at the same time. I really enjoy the ease of right-click to share, if any other service has replicated that.

[+] hprotagonist|6 years ago|reply
well, fuck.

The only reason i have dropbox on my workstation is so that i can

  ln -s /media/user/ssd_drive/results/bigstupidfile.tar.gz ~/Dropbox/user/
and then share that link.
[+] JorgeGT|6 years ago|reply
That's too bad, thanks for the heads up. I use symlinks for the figures of my LaTeX papers, the actual figure resides with the scripts and data that generate the figure (many GBs usually) and in Dropbox I only have very lightweight text files and symlinks. That way I know my figures are always up to data with the data when compiling.
[+] telesilla|6 years ago|reply
Any alternative suggestions? SyncThing that is discussed here seems to need you to manage your own always-on system, which I suppose can be implemented via a cloud server?

I've been using Dropbox for years but this change means I need to re-organise, so may as well look at other options at the same time.

[+] pier25|6 years ago|reply
For us techies this can be a big deal, but the vast majority of users do not even know what symlink is.

Personally I'm moving to Resilio Sync since these days I only use Dropbox to sync prefs and some files between devices. The idea of sharing the same folder between many users can be disastrous.

[+] TazeTSchnitzel|6 years ago|reply
Couldn't Dropbox have let you choose the behaviour you want? :/
[+] TheUndead96|6 years ago|reply
Alternative headline: Dropbox is dying, consider moving your data soon.