Unzip the .GZ file in worker Process of Azure
谁能给我一个主意,如何通过Worker实现.gz格式文件的解压缩。 如果我尝试编写文件的解压缩,那么我需要在其中存储解压缩的文件(即一个文本文件)
),将其加载到天蓝色的任何位置。 如何在Windows Azure Worker进程中指定路径,例如当前执行目录。 如果这种方法不起作用,那么我需要再创建一个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存储中:
如何将GZipStream与System.IO.MemoryStream一起使用?
如果没有与解压缩文件有关的任何操作,则最好直接存储到Azure Blob存储,但是,如果必须对解压缩的内容进行某些操作,则可以在本地保存以及将存储保存回Azure Blob存储以供进一步使用。
本示例使用SharpZipLib将.gzip文件提取到流中。从那里,您可以将其写入Azure本地存储或Blob存储:
http://wiki.sharpdevelop.net/GZip-and-Tar-Samples.ashx