最初 Dropbox Public 目录下的文件有 Public Link 可用来分享,但不方便且 URL 会暴露 User ID 产生安全隐患。

例如 -> https://dl.dropbox.com/u/id/file.name

去年 Dropbox 引入了新的 share link 功能,从此任何 Dropbox 目录内的文件和目录都可以被分享。

因参与 vagrantbox.es 项目,需要把 vagrant base box 打包放在 Dropbox 里分享。后来需要重新打包虚拟机,问题就来了,若放在不同目录或改文件名共享链接就会改变(主要是 token 会变)。这样的话,每次更新都得对 fork 的项目做改动,然后重新创建 Pull Request 给原项目所有者等待被 merge 太繁琐!

思考了一下,觉得 share link 应该是指向目录+文件名的指针,和 Unix/Linux 下的 symbolic link (指向文件名的指针,也就是指向指针的指针,囧)类似,理论上只要把重新打包的文件放在原目录下,文件名不变的话原 share link 继续有效,指向新文件。

测试证实了猜测!

比如 oracle64.box 这个 Vagrant Base Box

  • share link 页面 -> https://www.dropbox.com/s/zmitpteca72sjpx/oracle64.box

  • 直接下载链接 -> https://dl.dropbox.com/s/zmitpteca72sjpx/oracle64.box

  • oracle64.box~/Dropbox/DevOps/vagrantbox.es/

  • 重新打包后将其重命名 mv oracle64.box{,.old}

  • 把重新打包好的文件 mv 过来

  • 然后原共享连接就指向该重新打包的文件了

这个小技巧可能会对需要共享文件,时不时需要更新文件但又不方便频繁更新 share link (如静态页面)的人有用。

Share link 若能添加简单的统计分析功能就更好了,大家可以去官方论坛为添加该功能投票