組み込みのチャンクはありません。自分で実装する必要があります。それはかなり簡単なはずです。
次のようないくつかのインターフェースでうまくいくはずです。
Guid GetFile(string filename);
Guid GetFile(string filename, out int chunkCount);
byte[] GetFileChunk(Guid id, int chunkIndex);
が呼び出されると、サーバーはキーとして機能するに対してGetFile()
ファイルを「キャッシュ」できます。次に、これをクライアントに返して、ファイルの実際のチャンクをダウンロードするようにさらに要求できるようにします。Dictionary<>
Guid
Guid
GetFileChunk()
チャンクインデックスがそのGUID/ファイルのチャンクの数を超える場合は、nullを返す必要があります。
あなた次第の場合、チャンクのサイズ。応答性とパフォーマンスのどちらかを選択できます。チャンクが大きいほど、パフォーマンスが向上します。ただし、GUIでプログレスバーなどを更新する場合は、もちろん「応答性」に悪影響があります。何が最も効果的かを試してみてください。
別のインターフェースは次のようなものです。
Guid GetFile(string filename, out ulong numOfBytes);
byte[] GetFileData(Guid id, ulong index, ulong count);
これは、クライアントがダウンロードしたいチャンクのサイズを決定できることを意味します。そして、ある種のスケーリング戦略を実装することができます。