sourceforge.netからのwgetでファイル名がdownloadとなる場合の対処

Web開発

wgetで取得したらdownloadファイルが生成された

必要なファイルがsourceforge.netでしか配信されていない場合、パソコンにダウンロードして、FTPでサーバーにアップするのは手間が掛かります。

そんな時に便利なのがwgetコマンド。サーバで実行すると、直接サーバにダウンロードしてくれるので楽です。

通常はダウンロードURLをそのままwgetコマンドで指定すれば大丈夫なのですが、sourceforge.netの場合、「hoge.zip」のようなファイル名ではなく「download」というファイルができてしまうことがあります。

.zipファイルをダウンロードするためのURLが「https://sourceforge.net/projects/phplist/files/phplist/3.4.5/phplist-3.4.5.zip/download」だったのでこれをwget。

$ wget https://sourceforge.net/projects/phplist/files/latest/download
--2019-08-29 18:33:30--  https://sourceforge.net/projects/phplist/files/latest/download
sourceforge.net (sourceforge.net) をDNSに問いあわせています... 216.105.38.13
sourceforge.net (sourceforge.net)|216.105.38.13|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 302 Found
場所: https://downloads.sourceforge.net/project/phplist/phplist/3.4.5/phplist-3.4.5.zip?r=&ts=1567071211&use_mirror=jaist [続く]
--2019-08-29 18:33:31--  https://downloads.sourceforge.net/project/phplist/phplist/3.4.5/phplist-3.4.5.zip?r=&ts=1567071211&use_mirror=jaist
downloads.sourceforge.net (downloads.sourceforge.net) をDNSに問いあわせています... 216.105.38.13
downloads.sourceforge.net (downloads.sourceforge.net)|216.105.38.13|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 302 Found
場所: https://jaist.dl.sourceforge.net/project/phplist/phplist/3.4.5/phplist-3.4.5.zip [続く]
--2019-08-29 18:33:31--  https://jaist.dl.sourceforge.net/project/phplist/phplist/3.4.5/phplist-3.4.5.zip
jaist.dl.sourceforge.net (jaist.dl.sourceforge.net) をDNSに問いあわせています... 150.65.7.130, 2001:df0:2ed:feed::feed
jaist.dl.sourceforge.net (jaist.dl.sourceforge.net)|150.65.7.130|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 29687927 (28M) [application/octet-stream]
`download' に保存中

100%[======================================================================================================================================================================>] 29,687,927  20.4MB/s 時間 1.4s   

2019-08-29 18:33:33 (20.4 MB/s) - `download' へ保存完了 [29687927/29687927]

ほうほう、できたかな、と思い見てみると

$ ls
download

なにそれ

wget –content-disposition [url] とする

stackoverflowさんでも上がっていて、解決策がありました。

How do I download a file from SourceForge with wget?
I am writing a script which needs to download a release file from sourceforge. How to get the good link? The same question and its answer was given here in 201...

実は「download」というファイルですが、中身はちゃんと.zipファイルになっていて、ファイル名がおかしいだけでした。

wgetの「–content-disposition」を指定すると、HTTPヘッダの「Content-Disposition」で指定されたファイル名でファイルを保存するようになります。詳しいことはわかりませんが、恐らくwgetした際のリダイレクト(302 found)が原因で、このフィールドを見ない場合は拡張子も何もない「download」という名前で保存してしまったようです。

$ wget --content-disposition https://sourceforge.net/projects/phplist/files/phplist/3.4.5/phplist-3.4.5.zip/download
--2019-08-29 18:47:16--  https://sourceforge.net/projects/phplist/files/phplist/3.4.5/phplist-3.4.5.zip/download
sourceforge.net (sourceforge.net) をDNSに問いあわせています... 216.105.38.13
sourceforge.net (sourceforge.net)|216.105.38.13|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 302 Found
場所: https://downloads.sourceforge.net/project/phplist/phplist/3.4.5/phplist-3.4.5.zip?r=&ts=1567262836&use_mirror=jaist [続く]
--2019-08-29 18:47:16--  https://downloads.sourceforge.net/project/phplist/phplist/3.4.5/phplist-3.4.5.zip?r=&ts=1567262836&use_mirror=jaist
downloads.sourceforge.net (downloads.sourceforge.net) をDNSに問いあわせています... 216.105.38.13
downloads.sourceforge.net (downloads.sourceforge.net)|216.105.38.13|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 302 Found
場所: https://jaist.dl.sourceforge.net/project/phplist/phplist/3.4.5/phplist-3.4.5.zip [続く]
--2019-08-29 18:47:17--  https://jaist.dl.sourceforge.net/project/phplist/phplist/3.4.5/phplist-3.4.5.zip
jaist.dl.sourceforge.net (jaist.dl.sourceforge.net) をDNSに問いあわせています... 150.65.7.130, 2001:df0:2ed:feed::feed
jaist.dl.sourceforge.net (jaist.dl.sourceforge.net)|150.65.7.130|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 29687927 (28M) [application/octet-stream]
`phplist-3.4.5.zip' に保存中

100%[======================================================================================================================================================================>] 29,687,927  39.0MB/s 時間 0.7s   

2019-08-29 18:47:18 (39.0 MB/s) - `phplist-3.4.5.zip' へ保存完了 [29687927/29687927]

$ ls
phplist-3.4.5.zip

まとめ

海外のソフトなどをダウンロードしようとするとたまーに出くわすこの問題。また悩む可能性があるので備忘録をつけておきました。

コメント

タイトルとURLをコピーしました