通过 wget 从 Dropbox 链接下载包含子文件夹的文件夹到 Unix 服务器
Posted
技术标签:
【中文标题】通过 wget 从 Dropbox 链接下载包含子文件夹的文件夹到 Unix 服务器【英文标题】:Download Folder including Subfolder via wget from Dropbox link to Unix Server 【发布时间】:2016-02-11 00:11:15 【问题描述】:我有一个像 https://www.dropbox.com/sh/w4366ttcz6/AAB4kSz3adZ 这样的保管箱链接,它可以打开包含文件夹和文件的常用保管箱站点。 有没有机会使用 wget 将完整的内容(tar 或直接同步)下载到 unix 机器上? 我在这里看到了一些帖子,其中下载了单个文件,但找不到任何答案。 Dropbox 有一个 api,但由于我的服务器上的 64 位问题,它在我的服务器上不起作用,http://www.dropboxwiki.com/dropbox-addons/dropbox-gallery-download#BASH_Version 也对我不起作用....还有其他建议吗?
【问题讨论】:
【参考方案1】:这篇帮助文章记录了一些可用于从 Dropbox 共享链接获取不同行为的参数:
https://www.dropbox.com/help/201
例如,使用这个链接:
https://www.dropbox.com/sh/igoku2mqsjqsmx1/AAAeF57DR2ou_nZGC4JPoQKfa
我们可以使用dl
参数直接下载。使用 curl,我们可以这样下载:
curl -L https://www.dropbox.com/sh/igoku2mqsjqsmx1/AAAeF57DR2ou_nZGC4JPoQKfa?dl=1 > download.zip
(-L 是跟随重定向所必需的。)
或者,使用 wget,类似:
wget --max-redirect=20 -O download.zip https://www.dropbox.com/sh/igoku2mqsjqsmx1/AAAeF57DR2ou_nZGC4JPoQKfa
【讨论】:
非常适合我。我建议使用curl -L -O url
而不是> download.zip
对于 curl 版本,请确保链接末尾有 ?dl=1,从 Dropbox 复制时默认为 ?dl=0
请注意,这可能不适用于大于 2GB 的文件!【参考方案2】:
是的,您可以按照以下步骤进行操作,这很简单
首先,获取 Dropbox 分享链接。它看起来像这样https://www.dropbox.com/s/ad2arn440pu77si/test.txt
然后在该 url 的末尾添加一个“?dl=1”和一个“-O 文件名”,这样你最终会得到这样的结果:wget https://www.dropbox.com/s/ad2arn440pu77si/test.txt?dl=1 -O test.txt
现在您可以轻松地将文件放到您的 linux 上。
【讨论】:
【参考方案3】:目前,您最好不要发布creating an app,它可以访问您的所有文件,或者只是一个专用的应用程序文件夹(更安全)。单击应用程序设置页面大约一半的生成 API 令牌按钮,并安全地存储它!然后,您可以使用专用下载或zip download API calls 从任何地方获取您的文件,如下所示:
curl -X POST https://content.dropboxapi.com/2/files/download_zip \
--header "Authorization: Bearer $MY_DROPBOX_API_TOKEN" \
--header 'Dropbox-API-Arg: "path": "/path/to/directory"' \
> useful-name.zip
将您的令牌添加为环境变量可以更轻松、更安全地键入/编写这些操作的脚本。如果您使用 BASH,并且您的 $HISTCONTROL
中有 ignorespace
,您只需键入 + 粘贴您的密钥前导空格,这样它就不会保存在您的历史记录中。为了经常使用,请将其保存在具有0600
权限的文件中,您可以使用source
,就像使用 SSH 密钥一样。
export MY_DROPBOX_API_TOKEN='...'
【讨论】:
【参考方案4】:您也可以将 --content-disposition 与 wget 一起使用。
wget https://www.dropbox.com/sh/igoku2mqsjqsmx1/AAAeF57DR2ou_nZGC4JPoQKfa --content-disposition
它会自动检测文件夹名称作为 zip 文件名。
【讨论】:
这种方式太棒了!!以上是关于通过 wget 从 Dropbox 链接下载包含子文件夹的文件夹到 Unix 服务器的主要内容,如果未能解决你的问题,请参考以下文章
使用 curl 通过共享链接(不是公共链接)下载 Dropbox 文件夹