2017-04-03 4 views
0

FileUtils.copyInputStreamToFileを使用して、さまざまなファイル(それぞれ10MB〜200MBの範囲内)をダウンロードしています。いくつかのファイルは中国のホストされたCDNに置かれているため、時にはそれへのインターネット接続は疑わしいものです。通常、wgetを使用するとファイルは正常にダウンロードされますが、FileUtilsが壊れることが予想される場所では、しばしばエラーが発生するとは限りません。ファイルのダウンロードがGroovy/Javaで停止する

copyInputStreamToFileの設定がありますか、それとも、ストールを処理する代わりの方法がありますか?私は本当に殻のついた「wget」を呼び出すのが好きです。

また、ダウンロードが失敗したかどうかを確認する正確な方法があるので、不完全なファイルを削除して再起動することができます(ファイルをハッシュせずに比較する)。

答えて

1

特殊なライブラリを使用してファイルをダウンロードすることができます。

https://developers.google.com/api-client-library/java/google-api-java-client/media-download

OutputStream out = new FileOutputStream("/tmp/Test.jpg"); 

MediaHttpDownloader downloader = new MediaHttpDownloader(transport, httpRequestInitializer); 
downloader.setProgressListener(new CustomProgressListener()); 
downloader.download(requestUrl, out); 

最新バージョンのMavenで検索する "グーグル-APIクライアント":GoogleのAPIクライアントは、例えば1を持っています。

関連する問題