gpt4 book ai didi

c# - 在 azure blob 存储中就地创建 zip 文件

转载 作者:太空狗 更新时间:2023-10-29 21:46:31 25 4
gpt4 key购买 nike

我将文件存储在 Blob 存储帐户内的一个容器中。我需要在第二个容器中创建一个 zip 文件,其中包含第一个容器中的文件。

我有一个使用辅助角色和 DotNetZip 的解决方案,但由于 zip 文件的大小最终可能达到 1GB,我担心使用 MemoryStream 对象等在进程中完成所有工作. 不是最好的方法。我最关心的是内存使用和释放资源,因为这个过程可能一天发生几次。

下面是一些非常的精简代码,显示了辅助角色的基本流程:

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);
}

}

有人可以建议更好的方法吗?

最佳答案

在撰写此问题时,我不知道 Azure 中提供了 LocalStorage 选项。我能够将文件单独写入此文件并在 LocalStorage 中使用它们,然后将它们写回 blob 存储。

关于c# - 在 azure blob 存储中就地创建 zip 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8587660/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com