巨大なファイル (2 ~ 40 GB) を Azure Blob Storage にアップロードしたいと考えています。
まず、各ファイルをチャンクに分割することに成功しました (各チャンク = 2 MB)。次に、チャンクを 1 つずつアップロードします。各チャンクが正常にアップロードされたら、一時ファイルを更新して、アプリケーションが閉じられた場合にアップロードを再開できるようにします。
ここで、アップロード操作をマルチスレッドにしたいと考えています。TPL を見直した後、どこから始めればよいのか混乱しました。
TPLをどこから始めるべきか、何かガイダンスはありますか?
void Upload(int segmentId)
{
try
{
string blockId = GetBlockId(segmentId);
var segment = GetSegment(FilePath, segmentId, SeqmentSize);
var md5Hash = CalcMd5Hash(segment);
var blob = new CloudBlockBlob(_link.Uri);
using (var memoryStream = new MemoryStream(segment))
{
blob.PutBlock(blockId, memoryStream, md5Hash);
}
SerializeStatus();
}
catch (Exception exception)
{
...
}
}