zipファイルをローカルディレクトリにダウンロードせずにメモリストリームを使用してzipファイルを取得できます。以下は私のテストサンプルデモです、それは私のために正しく動作します。 SDKでAzure BLOBを操作する方法の詳細は、document .Add System.IO.Compression.dll
システムDLLから参照してください。
CloudStorageAccount storageAccount = CloudStorageAccount.Parse("You connection string");
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference("testcont"); //your container name
CloudBlockBlob blockBlob = container.GetBlockBlobReference("test.zip"); //blob name
using (var memoryStream = new MemoryStream())
{
blockBlob.DownloadToStream(memoryStream);
using (ZipArchive zip = new ZipArchive(memoryStream))
{
var count = zip.Entries.Count;
}
// Todo list we can use CloudBlockBlob.StartCopy to copy blob to another storage
}
CloudBlockBlob.StartCopyについての詳細情報documentを参照してください。
SDK情報packages.configファイルを参照してください。
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.Azure.KeyVault.Core" version="1.0.0" targetFramework="net452" />
<package id="Microsoft.Data.Edm" version="5.7.0" targetFramework="net452" />
<package id="Microsoft.Data.OData" version="5.7.0" targetFramework="net452" />
<package id="Microsoft.Data.Services.Client" version="5.7.0" targetFramework="net452" />
<package id="Newtonsoft.Json" version="6.0.8" targetFramework="net452" />
<package id="System.Spatial" version="5.7.0" targetFramework="net452" />
<package id="WindowsAzure.Storage" version="8.0.1" targetFramework="net452" />
</packages>
この解決策はまだブロブ全体をダウンロードします。私はこれを避けようとしています - ダウンロードの宛先(ローカルディレクトリまたはメモリ)に関係なく。 上記の問題に対する解決策がある場合は、RFCの可能性に関する低レベルの説明にもっと興味があります。 – johni
gizpファイルが空白のブロブにアップロードされない場合、アップロード中にこれらのブロブに対して[metedata](https://docs.microsoft.com/en-us/azure/storage/storage-properties-metadata)を追加することができます。 –