2016-08-03 12 views
0

私はAzure Blobコンテナにコンテナあたり数百個のBlobを持っています。 REST APIを通じてGET LISTコマンドを使用してファイルリストを照会すると、実際にリストが表示されますが、「最後に変更された」などの追加情報がたくさんあるXMLです。これにより、ファイルごとに約500バイトのリストが返されます。 200個のBLOBを持つコンテナの場合、これはそのリストを取得するためだけに100キロバイトになります。これはひどく非効率です。特に、ファイル自体がそれぞれ約10キロバイトにすぎないため、リストを頻繁に要求する必要があります。RESTを通してAzure Blobの最適なリストを取得する

GET LISTのドキュメントでは、より簡単なリストを返すためのオプションはありません。できるだけ小さく、基本的なものとして、完全なURLや追加情報なしで、ブロブ名だけが必要です。短いファイル名の場合、これはファイルごとにわずか5バイトに収まる可能性があります。

Azure Blobからファイルリストを取得する効率的な方法はありますか?

なぜ私はこれが必要なのですか?私は複数のユーザーがBlobを同時にアップロードすることができ、すぐに特定のBlobをダウンロードできるシステムを持っています。

私は、BlobのファイルをリストするためにC#Blob APIを使用すると、ユーザーに何をダウンロードするかを知らせるWebロールがあると考えましたが、そのWebロールではBlobから同じダウンロードコストがかかりませんか?多くのユーザーがこれとやりとりすることを期待しているため、ここでは価格が重視されます。

答えて

3

レスポンスペイロードにBLOB名だけを返す方法はわかりません。ただし、お店のアカウントと同じ地域にウェブの役割を展開する場合、地域内のトラフィックに料金を支払う必要がないため、応答ペイロードは実際に価格に影響を与えません。https://azure.microsoft.com/en-us/pricing/details/storage/

+0

ありがとうございます!このためだけにウェブロールを使用することは良い選択肢かもしれません。 Azureの価格は非常に理解しにくいので、多くの要因(発信帯域幅、取引数など)があります。あなたが提供したリンクでは、米国の東ヨーロッパと西ヨーロッパの価格計算はまったく異なります。内部的にブロブをリストすることが完全にフリーであるか、帯域幅だけがフリーであるかを理解することは難しい。 – Oogst

+1

地域内の帯域幅は無料ですが、依然としてトランザクション数のコストがかかります(これはデータ転送帯域幅よりもはるかに安い)。 –

関連する問題