1

ワーカーを介して .gz 形式のファイルの解凍を実装する方法を教えてください。ファイルの解凍を書き込もうとすると、解凍したファイル(つまり、1つのテキストファイル)を保存する必要がある場合、Azureの任意の場所に読み込まれますか。Windows Azure ワーカー プロセスで、現在実行中のディレクトリなどのパスを指定する方法を教えてください。このアプローチが機能しない場合は、解凍した .gz ファイル、つまり txt を保存するために、もう 1 つの BLOB を作成する必要があります。

-mahens

4

2 に答える 2

3

Worker ロールでは、(Azure Blob Storage からダウンロードされた) .gz ファイルがどのように到着するかはユーザー次第ですが、ファイルが利用可能な場合は、GZipStreamを使用して .GZ ファイルを圧縮/解凍できます。上記のリンクで圧縮および解凍機能を使用したコードサンプルを見つけることもできます。

この SO ディスカッションでは、C# を使用して .GZ を解凍する方法を説明するいくつかのツールとコードを共有しています: C# を使用して .gz ファイルを解凍する

次に、Worker ロールで Decompress/Compress コードを使用する場合は、(JcFx で提案されているように) ローカル ストレージに直接保存するか、MemoryStream を使用して Azure Blob Storage に直接保存することができます。

次の SO 記事では、GZipStream を使用して解凍したコンテンツを MemoryStream に格納し、次に UploadFromStream() API を使用して Azure Blob Storage に直接格納する方法を示しています: How do I use GZipStream with System.IO.MemoryStream?

解凍したファイルに関連するアクションがない場合は、Azure Blob Storage に直接保存するのが最適ですが、解凍したコンテンツで何かを行う必要がある場合は、ローカルに保存するだけでなく、ストレージを Azure Blob Storage に戻してさらに使用することもできます。

于 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 に答える