我使用当前日期作为文件夹名称将blob存储在虚拟文件夹中。
我需要Blob的名称是唯一的,但是我还需要能够在文件夹中搜索以选择某些文件(例如,文件名startswith(id))。
以下是我用来存储Blob的代码。
#r "Microsoft.WindowsAzure.Storage"
using Microsoft.WindowsAzure.Storage.Blob;
public static async Task Run(string input, Binder binder, TraceWriter log)
{
string path =
"container/{DateTime.UtcNow.ToString("yyyy/MM/dd/HH")}/{someid}-
{someguid}.json";
var attributes = new Attribute[]
{
new BlobAttribute(path),
new StorageAccountAttribute("<storage connection>")
};
using (var writer = await binder.BindAsync<TextWriter>(attributes))
{
writer.Write(input);
}
}
我知道可以使用SDK来搜索文件夹,但我确实希望能够使用命令式绑定对Blob存储中的虚拟文件夹进行搜索。例如。我想获取最近5天存储的所有Blob。
有任何想法吗?
最佳答案
据我所知,当前的azure storage listblob方法不支持按时间搜索。
首先,azure SDK还使用了azure storage rest api listblob方法。它仅支持前缀作为过滤器。
因此,我建议您可以尝试使用日期作为前缀来设置文件。
e.g 2017-2-15-xxxxx.txt
然后,您可以使用“ 2017-2”作为前缀来列出所有以“ 2017-2”开头的blob。
有关如何通过使用azure存储SDK来使用它的更多详细信息,可以参考此code sample。
关于c# - 在Azure Function中使用命令式绑定(bind)搜索虚拟文件夹中的Azure Blob,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46756263/