在Azure的Worker Process中解压缩.GZ文件

任何1可以给我一个想法,如何通过工作人员实现.gz格式文件的解压缩。 如果我尝试写解压缩文件然后,我需要存储解压缩文件(即一个文本文件),将它加载在azure色的任何位置。 我如何可以指定在Windows Azure工作进程中的path,如当前的执行目录。 如果这种方法不起作用,那么我需要创build一个更多的blob来存储解压缩的.gz文件,即TXT。

-mahens

在您的工作者角色中,如何.gz文件到达(从Azure Blob存储器下载)取决于您,但是在文件可​​用的情况下,您可以使用GZipStream来压缩/解压缩.GZ文件。 您也可以在压缩和解压缩功能的上面链接中找到代码示例。

这个SO讨论共享一些工具和代码来解释如何使用C#解压.GZ:使用C# 解压缩.gz文件

接下来,当您在工作者角色中使用解压缩/压缩代码时,您可以将其直接存储到本地存储(如JcFx所建议的)或使用MemoryStream直接存储到Azure Blob存储。

以下SO文章展示了如何使用GZipStream将解压缩的内容存储到MemoryStream中,然后使用UploadFromStream()API直接存储到Azure Blob存储: 如何在System.IO.MemoryStream中使用GZipStream?

如果您没有任何与解压缩文件相关的操作,则直接存储到Azure Blob存储是最好的,但是如果您必须对解压缩的内容执行某些操作,则可以将本地存储以及存储保存到Azure Blob存储以备后用。

这个使用SharpZipLib的例子将一个.gzip文件提取到一个流中。 从那里,你可以把它写到Azure本地存储 ,或blob存储:

http://wiki.sharpdevelop.net/GZip-and-Tar-Samples.ashx