如何使用流在 Blob 中压缩大文件

3
我正在使用Azure和Blob存储与Azure函数。 我有很多文件,有时我想生成一个zip文件,保存在存储中并生成链接。
由于我的zip文件可能很大(1或2 GB),因此我希望在保存之前“即时”处理,即不使用所有内存:
stream on a zipentry
write to the blob
flush the stream
create next zipentry

我知道我必须在容器中使用PutBlock()方法,但我缺少ICSharpZipLib和BlobContainer之间的代码。
有人对此有想法吗?

这个案例可能对你有帮助:https://dev59.com/aWMk5IYBdhLWcg3w6yHh - Wayne Yang
谢谢。我看到了这个问题,但我希望存在其他技术,比如在zip流中编写将写入blob流(不知道概念是否清楚)。 - Mescal
1个回答

4

好的,如果我仔细查看文档,就会看到这个方法。

blob.OpenWrite()

这将返回一个流:

using (ZipOutputStream zipStream = new ZipOutputStream(blob.OpenWrite()))

然后我像往常一样做了。

你能否张贴所有的代码? 我目前正在实现中挣扎,但我已经将 Blob 写入流作为输入传递给 Zip 输出流。 - lukejkw

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接