ブロブストレージアカウント内の1つのコンテナにファイルが保存されています。最初のコンテナからのファイルを含む2番目のコンテナにzipファイルを作成する必要があります。紺碧のブロブストレージ内のzipファイルを作成する
私はワーカーロールとDotNetZipを使用して動作するソリューションを持っていますが、zipファイルのサイズが1GBになる可能性があるため、MemoryStream
オブジェクトなどを使用してすべての作業を行うことが最善の方法ではないこれを行うの。私の最大の関心事は、このプロセスが1日に数回発生する可能性があるので、メモリの使用量とリソースの解放です。以下は
Workerロールで基本的なプロセスを示すいくつかの非常にストリップダウンコードです:
using (ZipFile zipFile = new ZipFile())
{
foreach (var uri in uriCollection)
{
var blob = new CloudBlob(uri);
byte[] fileBytes = blob.DownloadByteArray();
using (var fileStream = new MemoryStream(fileBytes))
{
fileStream.Seek(0, SeekOrigin.Begin);
byte[] bytes = CryptoHelp.EncryptAsBytes(fileStream, "password", null);
zipFile.AddEntry("entry name", bytes);
}
}
using (var zipStream = new MemoryStream())
{
zipFile.Save(zipStream);
zipStream.Seek(0, SeekOrigin.Begin);
var blobRef = ContainerDirectory.GetBlobReference("output uri");
blobRef.UploadFromStream(zipStream);
}
}
は、誰かがより良いアプローチをしてくださいお勧めすることはできますか?
ラテン語を使用する場合+1。 ;) – TrueWill
ええ、メモリやCPUのようなリソース使用量は、webrole/workroleというクラウドサービス内で常に懸念されます。それは考慮に値する。 +1 –