wget コマンドを使用して Dropbox ファイルをダウンロードするにはどうすればいいですか?

wget コマンドを使用して Dropbox ファイルをダウンロードするにはどうすればいいですか?

どうやら、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)                        });
                    } 

コマンドで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

答え1

質問内のリンクはファイルへのリンクではなく、このファイルの Dropbox ページへのリンクです。

ダウンロードして使用したい場合はwget、右側のダウンロードボタンを押したときにドロップされるメニューから直接ダウンロードするためのリンクをコピーする必要があります。

私の場合は、それでうまくいきました。

ただし、ブラウザ外部からリンクをダウンロードする際の問題は、リンク自体以外のパラメータに関係する場合があります。リンクを単にコピーしただけでは存在しない一般的な要素は、サイトの Cookie です。

これを試してクールなFFアドオン正しいwgetリンクを取得するには

また、特に、通常のワークステーションではなく既知のワークステーションについて話している場合は、もちろん Dropbox クライアントをインストールできます。これは最も簡単な方法です。ボックスをファイル構造の一部にするだけで、複雑なダウンロードが不要になります。

これを見てaskubuntu.com の投稿、 そしてそのドロップボックスダウンロードページ。

答え2

リンクの最後に追加するだけです?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"

また、ちょっとした GUI が必要な場合は、zenityファイルがダウンロードされる場所をマークするために使用できます。

以下にコード例を示します。

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

答え3

Dropbox はこれを修正しwget、インタースティシャルの代わりにファイルを正しく取得するようにしました。

ファイルへの直接リンクを取得するには、「リンクを共有」を使用します。

答え4

これを実現する Python スクリプトが GitHub にあります:

https://github.com/dpdornseifer/dropbox_download

また、Dropbox サーバーは転送の再開をサポートしていません。

Dropbox はクライアントとして wget の使用をサポートしており、適切なファイルに自動的にリダイレクトするようです。それとも、wget は単にリダイレクトに従っているだけなのでしょうか?

関連情報