1

谁能给我一个想法,如何通过Worker实现.gz格式文件的解压。如果我尝试编写文件解压缩,那么我需要存储解压缩文件(即一个文本文件)的位置,它将被加载到天蓝色的任何位置。如何在 Windows Azure Worker 进程中指定路径,如当前执行目录。如果这种方法不起作用,那么我需要再创建一个 blob 来存储解压缩的 .gz 文件,即 txt。

-马亨斯

4

2 回答 2

3

在您的 Worker 角色中,.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 存储: 如何将 GZipStream 与 System.IO.MemoryStream 一起使用?

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

于 2012-08-28T21:43:33.967 回答
2

此示例使用 SharpZipLib 将 .gzip 文件提取到流中。从那里,您可以将其写入Azure 本地存储或 Blob 存储:

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

于 2012-08-28T19:13:12.403 回答