2012-02-09 255 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

你可以做的另一件事是保存一个存储表与文件列表。使用它作为索引,通过在表上进行过滤来查找您关心的人。我已经完成了一些代码,但是我也完全控制了写入存储帐户的内容(仅限我的应用程序)。所以实施起来并不算太坏。