2012-02-09 256 views
2

我需要一個列出azure blob的功能,如果我指定日期,列表應該只包含該日期之後創建的blob。Azure Blob存儲列表Blob

目前我正在使用BlobDirectory.ListBlobs()函數返回所有的斑點。它也有一個以BlobRequestOptions作爲參數的重載函數。我已經嘗試將AccessCondition中的BlobRequestOptions設置爲AccessCondition.IfModifiedSince(Date.UTC.Now),但它以某種方式爲我提供了存儲在容器中的所有Blob。

上我能做什麼不同,以獲得斑點

+0

您是針對存儲模擬器還是實際的blob容器運行此操作? – knightpfhor 2012-02-10 00:50:06

+0

針對Azure上的實際blob容器。 – 2012-02-10 14:15:09

回答

0

我不認爲AccessCondition適用於blob列表,只是單個blob本身(儘管文檔不明確)。快速HTTP跟蹤將確認是否爲該呼叫發送了關聯的HTTP標頭。

如果它的確適用於ListBlobs()調用,則資源本身就是blob容器。因此,我希望它會返回容器中的所有blob或全部blob,具體取決於自提供日期以來容器是否已被修改。

+0

即使是這種情況Date.UTC.Now不應該返回任何blob。是的,我同意你的看法,似乎文檔沒有更新以反映AccessConditions似乎不適用於ListBlobs。 – 2012-02-10 14:24:08

0

你可以做客戶端過濾器,以獲得您想要的數據的特定子集的任何建議。因此,在顯示結果之前,先將代碼塊(使用Linq或任何你喜歡的代碼)過濾掉,然後過濾它們。

+0

是的,我計劃做這個作爲我最後的選擇,但仍然好奇知道爲什麼AccessCondition不起作用。 – 2012-02-09 18:08:41

2

本文介紹獲得的斑點超過一定日期http://blogs.msdn.com/b/avkashchauhan/archive/2011/07/29/programatically-deleting-older-blobs-in-windows-azure-storage.aspx

顯然很簡單,做改變它得到斑點超過一定日期較新的舊的。

+0

根據azure文檔,這現在不起作用 - 條件標頭不能用於ListBlobs操作:https://docs.microsoft.com/en-us/rest/api/storageservices/Specifying-Conditional-Headers-換的Blob服務的運營?redirectedfrom = MSDN#Subheading2 – res10 2017-05-09 10:02:35

0

你可以做的另一件事是保存一個存儲表與文件列表。使用它作爲索引,通過在表上進行過濾來查找您關心的人。我已經完成了一些代碼,但是我也完全控制了寫入存儲帳戶的內容(僅限我的應用程序)。所以實施起來並不算太壞。