在我的Windows Azure代码中,我想从Blob存储下载一个ZIP文件,然后动态解压缩,并将解压缩的内容存储到磁盘上。这样一来,我节省了先将文件写入磁盘,然后在提取时读取文件的时间。
我正在尝试使用DotNetZip。
ZIP文件最初很大,所以它被分割成多个部分(不是多部分归档,而是一个普通的ZIP归档,只是被分割成更小的文件),每个部分都被上传到Blob存储中。我知道如何迭代所有部分,并在需要时打开每个blob n
Azure SDK具有返回Stream
子代的CloudBlob.OpenRead()
。
DotNetZip具有ZipInputStream
类,该类具有接受Stream
的构造函数。
我如何将这些片段连接在一起,以便可以一个接一个地下载ZIP文件片段,并在运行中提取它们?
创建自己的流类,该流类将根据其位置从相应的CloudBlob返回数据。
然后使用此类作为ZipInputStream
的输入流。
public sealed class ZipBlobStream : Stream
{
...
http://msdn.microsoft.com/library/system.io.stream.aspx