any1能为我提供一个想法,如何通过Worker实现.gz格式文件的解压缩。如果我尝试编写解压缩文件然后,我需要存储解压缩文件(即一个文本文件 ),它是否会被加载到天蓝色的任何位置。如何在Windows Azure Worker进程中指定路径,如当前的execting目录。如果这种方法不起作用,那么我需要再创建一个blob来存储解压缩的.gz文件,即txt。
-mahens
答案 0 :(得分:3)
在您的辅助角色中,由.gz文件到达(从Azure Blob存储下载)是由您决定的,但是在该文件可用时,您可以使用GZipStream压缩/解压缩.GZ文件。您还可以在上面的链接中找到具有压缩和解压缩功能的代码示例。
这个SO讨论分享了一些工具和代码来解释如何使用C#解压缩.GZ: Unzipping a .gz file using C#
接下来,当您在工作者角色中使用解压缩/压缩代码时,您可以将其直接存储到本地存储(如JcFx所建议),或使用MemoryStream直接存储到Azure Blob存储。
以下SO文章展示了如何使用GZipStream将解压缩的内容存储到MemoryStream中,然后使用UploadFromStream()API直接存储到Azure Blob存储: How do I use GZipStream with System.IO.MemoryStream?
如果您没有与解压缩文件相关的任何操作,那么最好直接存储到Azure Blob存储,但是如果您必须对解压缩的内容执行某些操作,则可以将其保存在本地以及存储到Azure Blob存储中以便进一步的使用。
答案 1 :(得分:2)
此示例使用SharpZipLib将.gzip文件提取到流中。从那里,您可以将其写入Azure local storage或blob存储: