2012-02-09 18 views
2

日付を指定すると、その日付以降に作成されたBLOBのみがリストに含まれるように、azureのBLOBをリストする機能が必要です。Azure BlobストレージBLOBを表示する

現在、私はすべてのブロブを返すBlobDirectory.ListBlobs()関数を使用しています。また、BlobRequestOptionsをパラメータとして受け取るオーバーロードされた関数を持っています。私はBlobRequestOptionsのAccessConditionをAccessCondition.IfModifiedSince(Date.UTC.Now)に設定しようとしましたが、どういうわけかそれはすべてのBlobをコンテナに格納しています。

私はあなたが必要なデータを取得するために、クライアント側のフィルタを行うことができ、ブロブ

+0

これはストレージエミュレータまたは実際のBLOBコンテナに対して実行していますか? – knightpfhor

+0

Azureの実際のBlobコンテナに対して。 –

答えて

0

AccessConditionはブロブのリストに適用されるとは考えられませんが、ドキュメントはクリアされていません。クイックHTTPトレースは、関連付けられたHTTPヘッダーがその呼び出しのために送信されるかどうかを確認します。

実際にListBlobs()呼び出しに適用される場合、リソースはblobコンテナ自体になります。したがって、コンテナ内のすべてのブロブを返すか、コンテナ内のブロブを返さないかは、指定された日付以降にコンテナが変更されたかどうかによって異なります。

+0

その場合でもDate.UTC.Nowは私にブロブを返しません。はい、私はあなたに同意します、AccessBaseにAccessConditionsが当てはまらないように文書が更新されていないようです。 –

0

の特定のサブセットを取得するために、異なる何ができるか上の任意の提案。だからブロブをプルダウンし、結果を浮上させる前に(Linqなどを使って)コードでフィルタリングしてください。

+0

ええ、私は最後の選択肢としてこれを行う予定でしたが、AccessConditionがなぜ機能しないのか不思議ではありません。 –

2

この記事では、明らかにhttp://blogs.msdn.com/b/avkashchauhan/archive/2011/07/29/programatically-deleting-older-blobs-in-windows-azure-storage.aspx

非常に単純な特定の日付より古い塊が特定の日付より新しいブロブを取得するためにそれを変更やってき示しています。

+0

紺碧の文書によると、これはうまくいきません - 条件付きヘッダーはListBlob操作で使用できません:https://docs.microsoft.com/en-us/rest/api/storageservices/Specifying-Conditional-Headers- for-Blob-Service-Operations?redirectedfrom = MSDN#副2 – res10

0

もう1つのことは、ファイルのリストを持つストレージテーブルを保持することです。これをインデックスとして使用して、テーブルをフィルタリングして気になるものを見つけてください。私はいくつかのコードを書いていますが、ストレージアカウントに書かれているもの(私のアプリケーションだけです)を完全に管理していました。だから、実装するのがそれほど悪くはありませんでした。

関連する問題