C# Azure Blob存储列表Blob

C# Azure Blob存储列表Blob,c#,azure,azure-storage-blobs,C#,Azure,Azure Storage Blobs,我需要一个从azure列出blob的功能,这样如果我指定日期,列表应该只包含在该日期之后创建的blob 目前我正在使用BlobDirectory.ListBlobs()函数,该函数返回所有blob。它还有一个重载函数,将BlobRequestOptions作为参数。我曾尝试将BlobRequestOptions中的AccessCondition设置为AccessCondition.IfModifiedSince(Date.UTC.Now),但不知怎的,它提供了存储在容器中的所有blob 任何关于

我需要一个从azure列出blob的功能,这样如果我指定日期,列表应该只包含在该日期之后创建的blob

目前我正在使用BlobDirectory.ListBlobs()函数,该函数返回所有blob。它还有一个重载函数,将BlobRequestOptions作为参数。我曾尝试将BlobRequestOptions中的AccessCondition设置为AccessCondition.IfModifiedSince(Date.UTC.Now),但不知怎的,它提供了存储在容器中的所有blob


任何关于我可以采取哪些不同措施来获取特定blob子集的建议

您可以使用客户端过滤器来获取所需的数据。因此,在显示结果之前,请先下拉blob,然后在代码中对其进行过滤(使用Linq或任何您喜欢的方法)。

我认为AccessCondition不会应用于blob列表,而只应用于单个blob本身(尽管文档不清楚)。快速HTTP跟踪将确认是否为该调用发送关联HTTP头


如果它确实应用于ListBlobs()调用,那么该资源就是blob容器本身。因此,我希望它返回容器中的所有blob或不返回任何blob,这取决于容器本身是否在提供的日期之后被修改过。

本文显示的是在某个日期之前返回blob


显然,更改它以获得比某个日期更新的blob非常简单。

您可以做的另一件事是保留一个包含文件列表的存储表。将其用作索引,通过在表中筛选来查找您关心的对象。我已经完成了一些代码,但我也完全控制了写入存储帐户的内容(只有我的应用程序可以)。所以实施起来还不算太糟。

是的,我计划将其作为我的最后一个选项,但仍然想知道为什么AccessCondition不起作用。您是针对存储模拟器还是针对实际的blob容器运行此操作?针对Azure上的实际blob容器。即使是这样,Date.UTC.Now也不应该返回任何blob。是的,我同意你的看法,文档似乎没有更新以反映AccessConditions似乎不适用于ListBlobs。根据azure文档,这现在不起作用-ListBlobs操作上不能使用条件标头: