如何使用 wget 命令下载 dropbox 文件?

hug*_*eow 88 linux cloud-storage dropbox wget command-line

似乎我只能使用 chrome 和 firefox 等资源管理器下载 dropbox 文件。如果我使用 wget 下载,那么我会得到一个 html 格式的文件。为什么?

例如你可以打开这个链接

你不会得到这个文件的内容,为什么?下面是test.txt的一部分下载,这根本不是test.txt的内容。

那么是否可以使用wget资源管理器而不是资源管理器下载 Dropbox 文件?

document.observe('script:loaded', function() {
SharingModel.init('test\x2etxt', Util.from_json('\x7b\x22item\x5fid\x22\x3a\x20\x22\x22\x2c\x20\x22secure\x5fhash\x22\x3a\x20\x22\x22\x2c\x20\x22subpath\x22\x3a\x20\x22\x22\x2c\x20\x22tkey\x22\x3a\x20\x22mx9eqve5l2ipgyk\x22\x7d'))
SharingModel.init_file()
$('emsnippet-9911dfc627e1d541').innerHTML = 'test\x2etxt'.em_snippet(50, 0.750).escapeHTML();
$('emsnippet-add7879f5d805012').innerHTML = 'test\x2etxt'.em_snippet(20, 0.750).escapeHTML();
$('emsnippet-981ac0639529f983').innerHTML = 'test\x2etxt'.em_snippet(20, 0.750).escapeHTML();
FilePreview.init_text('https\x3a\x2f\x2fdl\x2edropbox\x2ecom\x2fs\x2fmx9eqve5l2ipgyk\x2ftest\x2etxt', 0)                        });
                    } else if (window.jQuery) {
jQuery(function () {
SharingModel.init('test\x2etxt', Util.from_json('\x7b\x22item\x5fid\x22\x3a\x20\x22\x22\x2c\x20\x22secure\x5fhash\x22\x3a\x20\x22\x22\x2c\x20\x22subpath\x22\x3a\x20\x22\x22\x2c\x20\x22tkey\x22\x3a\x20\x22mx9eqve5l2ipgyk\x22\x7d'))
SharingModel.init_file()
$('emsnippet-9911dfc627e1d541').innerHTML = 'test\x2etxt'.em_snippet(50, 0.750).escapeHTML();
$('emsnippet-add7879f5d805012').innerHTML = 'test\x2etxt'.em_snippet(20, 0.750).escapeHTML();
$('emsnippet-981ac0639529f983').innerHTML = 'test\x2etxt'.em_snippet(20, 0.750).escapeHTML();
FilePreview.init_text('https\x3a\x2f\x2fdl\x2edropbox\x2ecom\x2fs\x2fmx9eqve5l2ipgyk\x2ftest\x2etxt', 0)                        });
                    } 
Run Code Online (Sandbox Code Playgroud)

我无法使用命令获取 test.txt

wget https://www.dropbox.com/s/mx9eqve5l2ipgyk/test.tx


ls -l 
-rw-rw-r-- 1 mirror mirror  30K Sep  6 15:01 test.txt
Run Code Online (Sandbox Code Playgroud)

小智 142

只需?dl=1在链接末尾添加即可!例如:https://www.dropbox.com/s/mx9eqve5l2ipgyk/test.txt?dl=1

这应该可以让您很好地检索有问题的文件,而无需向文件添加任何内容。

还有一件事!如果您想将文件保存在其他地方,请使用这样的-O选项

wget -O /root/Desktop/test.txt "https://www.dropbox.com/s/mx9eqve5l2ipgyk/test.txt?dl=1"
Run Code Online (Sandbox Code Playgroud)

如果你想要一点图形用户界面,你可以用它zenity来标记文件将要下载的位置!

这是一个示例代码:

#!/bin/bash
dir=$(zenity --file-selection --directory)
wget -O $dir/test.txt "https://www.dropbox.com/s/mx9eqve5l2ipgyk/test.txt?dl=1"
Run Code Online (Sandbox Code Playgroud)

  • 这个方法还有效吗?使用命令 `wget 'https://www.dropbox.com/sh/my_folder_url?dl=1'` 我不断收到 `ERROR 400: Bad Request`。 (4认同)
  • 太棒了,开箱即用... (2认同)
  • 比接受的答案要好得多。这很有帮助,谢谢。 (2认同)
  • 这个对我有用。即使在今天。这个解决方案比答案更好 (2认同)

小智 23

您问题中的链接不是指向文件的链接,而是指向该文件的 Dropbox 页面的链接。

如果您想使用wget它来下载它,您应该将链接复制到直接从按下右侧下载按钮时出现的菜单中下载。

就我而言,效果很好。

但是,有时从浏览器外部下载链接的问题与链接本身以外的参数有关。简单复制链接时不存在的常见元素是站点 cookie。

试试这个很酷的 FF 插件以获得正确的wget链接

而且,特别是如果我们谈论的是已知工作站而不是临时工作站,您当然可以安装 Dropbox 客户端。这将是最简单的方法,只需让您的盒子成为您文件结构的一部分并消除复杂下载的需要。

请参阅此askubuntu.com 帖子Dropbox下载页面。

  • 尝试在浏览器中获取直接链接会弹出升级选项的广告。我看到另一个答案 (http://superuser.com/a/486351/106977) 涉及`?dl=1`,但这也不允许访问链接(可能是因为 Box 阻止使用,除非你升级)。 (4认同)

小智 15

Dropbox 对其进行了修改,以便wget做正确的事情并检索文件而不是插页式广告。

使用“共享链接”检索文件的直接链接。