使用事例
ここでは大きなファイルについて話します(最小100 MB、
ゴール
Zenodoとの間のデータのアップロードおよび/またはダウンロードのパフォーマンスを最適化します。
アップロード
データをZenodoからZenodoにできるだけ速く移動します。 1)JavaScript(ブラウザ)および/または2)Python(API)を使用します。
_クライアント側_
JavaScript:チャンクファイル(多くの既存のライブラリがこれをサポートしています-たとえばPLUpload)、チャンクを並列にアップロードします(これはどこでも見られませんでした-たとえばjavascript Webワーカーを使用できます)。
Python:JavaScriptと同じです-チャンク/並列化+ HTTPパイプラインとTCPレイヤーも調べます。
考慮すべき問題:
_サーバ側_
ダウンロード
例1:1000ファイルの260GBデータセット。 研究者が1000のリンクをクリックせずにファイルを簡単にダウンロードするにはどうすればよいでしょうか。
例2:4つのファイルの260GBデータセット。 ネットワーク接続が失われた場合(つまり、再開可能なダウンロード)はどうなりますか。
_クライアント側_
おそらく、1000個のファイルのダウンロードに役立つJavaScriptアプリを作成することは可能です。 同じアプリが再開可能なダウンロードに役立つ可能性があります。 繰り返しになりますが、Javascript Webワーカーモデルを使用して、ファイルをチャンクでダウンロードできる可能性があります。
_サーバ側_
HTTP範囲リクエストのサポートを実装します。 アップロード(プロセスモデル、および同時ダウンロード)と同様です。 たとえば、ファイルのダウンロードに時間がかかる遅いクライアントは、行をいっぱいにします。
範囲外(ただし、議論する必要があります):コンテンツ配信ネットワークのようなファイル配信を最適化する他の方法。
Pythonの部分は主にinveniosoftware / invenio-files-restに入ります
JavaScriptパーツは個別のリポジトリになります。
この古い問題をややトピックから外れた方向に復活させて申し訳ありません... ZenodoHTTPサーバーが元のコメントで言及されているHTTP範囲要求をサポートすることを強く望んでいます。 私の知る限り、彼らは現在名誉を与えられていません。 これは現在ロードマップにありますか?
一般的なインターネットブラウザを使用するよりも大きなファイルをダウンロードするためのより良い方法はありますか? httpを介した大きなファイルは数時間以内に失敗する傾向があり、ダウンロードを再開することはできません。
私の場合、50GBのデータセットをダウンロードしようとしています。
ダウンロード速度は500Kbpsに丸められ、ダウンロードが続く12時間の間に接続が失敗します。
私はこれを何ヶ月も毎日ダウンロードしようとしています(修士論文のデータセットが必要です)。
助言がありますか?
5回試行しても2.2GBのデータセットをダウンロードできず、ダウンロードマネージャーも役に立ちませんでした。
@Vichoko 、なんとか解決できましたか? はいの場合、どのように?
私も、2つの大きなファイル(12Gbと37Gb)を含むデータセットを何日もダウンロードしようとして非常にイライラしていました。
https://zenodo.org/record/1261813(https://gitlab.com/dvolgyes/zenodo_get )を見つけましたが、非常に役立ちました。 私は最初の試みでレコード全体をダウンロードすることができました。
一見、魔法のようなものは何も見当たらないので、そのトリックはwgetのPython実装の内部のいくつかにあるに違いないと思います。
Link: https://zenodo.org/api/files/cb4ca1fa-1db1-40f9-8f39-0e9d3b2af7ae/musdb18hq.zip size: 21607.1 MB
0% [ ] 3121152 / 22656664047
2006年には、ダイヤルアップを使用して21GBのファイルをより高速にダウンロードできました。 ZenodoにはCDNインフラストラクチャがありませんか? S3またはGCSバケットを使用してみませんか?
Zenodoのダウンロードが異常に遅く不安定であることを考えると、この問題を再開する必要があると思います。 または、Zenodoのダウンロードを追跡するための別の問題がある場合はどうなりますか?
最も参考になるコメント
一般的なインターネットブラウザを使用するよりも大きなファイルをダウンロードするためのより良い方法はありますか? httpを介した大きなファイルは数時間以内に失敗する傾向があり、ダウンロードを再開することはできません。
私の場合、50GBのデータセットをダウンロードしようとしています。
ダウンロード速度は500Kbpsに丸められ、ダウンロードが続く12時間の間に接続が失敗します。
私はこれを何ヶ月も毎日ダウンロードしようとしています(修士論文のデータセットが必要です)。
助言がありますか?