我正在尝试使用 ZipArchive 压缩我的 blob 存储文件并将该 zip 流上传回 blob 存储。
下面是将文件流下载到 Zip 条目并上传回 blob 存储的代码,但问题是当我返回存储资源管理器并下载我的 zip 文件时,它给了我这个错误:
存档格式未知或已损坏
var account = _cloudStorageAccount;
var blobClient = account.CreateCloudBlobClient();
CloudBlobContainer container = _blobClient.GetContainerReference("myFiles");
CloudBlockBlob cloudBlockBlob = container.GetBlockBlobReference("myFile.pdf");
MemoryStream zipStream = new MemoryStream();
using (var zip = new ZipArchive(zipStream, ZipArchiveMode.Create , true))
{
ZipArchiveEntry orderEntry = zip.CreateEntry("myFile.pdf");
using (Stream entryStream = orderEntry.Open())
{
var cloudBlockClient = container.GetBlockBlobReference("myFile.pdf");
await cloudBlockClient.DownloadToStreamAsync(entryStream);
}
CloudBlobContainer _blobContainer = _blobClient.GetContainerReference("protocol");
CloudBlockBlob cloudBlockBlobZip = _blobContainer.GetBlockBlobReference("Fifth.zip");
cloudBlockBlobZip.Properties.ContentType = "zip";
zipStream.Seek(0, SeekOrigin.Begin);
zipStream.Position = 0;
await cloudBlockBlobZip.UploadFromStreamAsync(zipStream);
var fileUrl = cloudBlockBlobZip.Uri.AbsoluteUri;
return zipStream;
}