3

基本的に、部分的なアップロードをサーバーに保存するための最良の方法を探しています。ファイルはチャンクごとにアップロードされます。チャンクは、並行して任意の順序で来る可能性があります。それらを一時的にどこかに何らかの形で保存してから、アップロードされたチャンクから完全なファイルを作成する必要があります。私はそれを行う方法についていくつかのアイデアを持っていますが、すでにいくつかのベストプラクティス、または標準、またはある種のRFCがあるのだろうかと思います。

アップデート:

アップロードはHTTP経由で行われます。

4

1 に答える 1

2

この問題はこれまで何度も解決されてきました。BITS、Torrent、FTPなどを使用する

基本は次のとおりです。

>セッションの初期化

>ファイル名、チャンクサイズ、チャンク数、各チャンクのハッシュを送信します

>シグナリングされたときにチャンクを送信します。各チャンクはチャンクインデックス番号で始まります

<ファイル名などを受け取る

<正しい名前とサイズの空のファイルを割り当てます

<完了ファイル(たとえばname.status)を割り当て、チャンクごとに1つのintを設定します。これらは、そのチャンクの完了率を表します

<必要なインデックスでチャンクを開始するためのシグナル

<<各チャンクが受信されたら、割り当てられたファイルの正しい場所に保存します

<<各チャンクが完了すると、ハッシュを確認します。間違った場合は再び0%としてマーク

<すべてのチャンクが受信されたら、name.statusを削除し、割り当てられたファイルのロックを解除します

一部のシステムは大きなチャンクを使用し、ファイル名、サイズなどをすべてのチャンクの前に配置します。したがって、チャンクは独立しており、セッションを開始せずに受信できます。

于 2011-02-27T10:56:01.923 に答える