0

出力として zip ファイルを作成する azure-batch ジョブを実行しています。バッチは、出力ファイルを BLOB に移動する役割を持つオーケストレーターによって実行されています。これは機能していますが、扱いにくいと感じます。つまり、ファイルをオーケストレーターにローカルにダウンロードしてから、BLOB にアップロードします。

CloudTask task; // executed task...
var node = task.GetNodeFile(fileName);
using (var stream = File.OpenWrite(localFile))
{
  node.CopyToStream(stream);
}

var blobRef = _blobContainer.GetBlockBlobReference(blobFileName);
blobRef.UploadFromFile(localFile, FileMode.Open);

blob ストリームを CopyToStream メソッドに直接渡そうとしましたが、何も blob に移動しませんでした:

node.CopyToStream(blobRef.OpenWrite());

この余分なホップなしで出力ファイルをバッチ vm から blob にコピーすることは可能ですか?

4

2 に答える 2

0

答えは実際には非常に単純でした-クラウド参照ストリームを破棄すると、フラッシュが強制されるようです-つまり:

CloudTask task; // executed task...
var node = task.GetNodeFile(fileName);

using(var stream = _blobContainer.GetBlockBlobReference(blobFileName))
{
  node.CopyToStream(stream);
}
于 2016-02-11T09:33:49.283 に答える