在我的Windows Azure代码中,我想从Blob Storage下载ZIP文件并动态解压缩并将解压缩的内容存储到磁盘。这样我就首先将文件写入磁盘,然后在进行提取时读取它。
我正在尝试使用DotNetZip。
ZIP文件最初非常大,所以它被分割成碎片(不是多部分存档,而是普通的ZIP存档,只是切成较小的文件),每个部分都被上传到Blob存储中。我知道如何遍历所有部分并在需要时打开每个blob
Azure SDK的CloudBlob.OpenRead()
返回Stream
后代。
DotNetZip有ZipInputStream
个类,其构造函数接受Stream
。
如何将这些碎片连接在一起,以便我可以逐个下载ZIP文件并立即提取它们?
答案 0 :(得分:0)
创建您自己的流类,该类将根据其位置从相应的CloudBlob返回数据。
然后将此类用作ZipInputStream
的输入流。
public sealed class ZipBlobStream : Stream
{
...