2016-10-28 21 views
1

TL; DR:圧縮している間に大きなMemoryStreamをAzureにアップロードすることは可能ですか?ビッグZipArchive-MemoryStreamをAzureにアップロード

私はMemoryStreamに保存されたファイルを持っています。これらのファイルを別のMemoryStreamのZipArchiveに追加します。
このMemoryStreamを私はこれまでのところは良い

blockBlob.UploadFromStream(zipMemoryStream); 

を使用してAzure-BlockBlob-Storageにアップロードします。
問題は、ZipアーカイブがMemoryStreamの問題である8GBより大きくなる可能性があることです。

メモリストリームからチャンクとして灰色の部分をアップロードして、これらのバイトをストリームから削除することはできますか?

または、zipArchiveと紺碧を扱う方が良いでしょうか?私はパッケージSystem.IO.Compression

よろしく、
フロ

+0

Block Blobを使用するとしますか? – boades

+0

はい、ブロックブロブを使用しています:) –

+0

ジッパーにはどのようなクラスを使用しますか?私はこれを解決する方法を知っていると思う。コードを表示してください。 – boades

答えて

3

それはあなたが探しているものではない正確かもしれないが、あなたはこのような何かをしようとしたのでクラスZipArchiveを使用していますビュンについては

:あなたはそれがで動作CloudBlobStreamのインスタンスを作成しますCloudBlockBlobOpenWrite呼び出す

var blob = container.GetBlockBlobReference("zipped.zip"); 
using (var stream = new ZipArchive(blob.OpenWrite(), ZipArchiveMode.Create)) 
{ 
    var entry = stream.CreateEntry("entry1"); 
    using (var es = entry.Open()) 
    { 
     // Fill entry with data 
    } 

    // Other code 
} 

MemoryStreamとは異なる方法です。 CloudBlobStreamはAzure Storage Serviceに4MBのチャンクでデータを送信しますが、これはメモリにチャンクを保存しないことを覚えている限りです。

+0

私はそれがまさに私は探している、私はそれを試して、あなたに応答を与えるだろうが、私はあなたを受け入れる、あなたの迅速な答えに感謝する –

関連する問題