通过 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 文件夹

使用 cURL 下载受密码保护的 Dropbox 链接

Dropbox 文件夹下载问题 (c#)

如何使用 vb.net 从 Dropbox 文件夹中复制 Dropbox 文件链接

linux下用wget下载文件

无法从Dropbox下载文件,因为无法通过C#中的WebClient与SSL / TLS通道连接