Javascript 获取Azure Blob存储节点中选定Blob的元数据

Javascript 获取Azure Blob存储节点中选定Blob的元数据,javascript,node.js,azure,azure-storage-blobs,azure-functions,Javascript,Node.js,Azure,Azure Storage Blobs,Azure Functions,我正在开发一个azure函数,该函数连接到azure存储,以根据这些Blob上的特定元数据获取Blob元数据的选择性列表。例如,在存储器中的所有blob上,将有一个名为type的元数据,它存储新闻、更改通知、常见问题解答等值。我们可能有50个blob是新闻,另外50个是更改通知,另外50个是常见问题解答 现在从函数中,我请求所有类型为news的blob,函数应该返回所有类型为news的blob的元数据,如下面的示例所示: value: [ { object : abc.xml, data c

我正在开发一个azure函数,该函数连接到azure存储,以根据这些Blob上的特定元数据获取Blob元数据的选择性列表。例如,在存储器中的所有blob上,将有一个名为type的元数据,它存储新闻、更改通知、常见问题解答等值。我们可能有50个blob是新闻,另外50个是更改通知,另外50个是常见问题解答

现在从函数中,我请求所有类型为news的blob,函数应该返回所有类型为news的blob的元数据,如下面的示例所示:

value: [
{ object : abc.xml,
  data created : Mar 20,2018,
  type : news,
  creator name : john
}
{
   object : xyz.xml,
   data created: Mar 13,2018,
   type : news,
   creator name : Siva
}
{
   object : dce.xml,
   data created: Mar 20,2018,
   type : news,
   creator name : John
}
然后我必须根据元数据对数据进行排序。我看到了单个blob的getmetadata和getproperties选项,但我没有看到任何通过storage sdk获得我刚才提到的内容的选项。是否可以通过Blob存储元数据实现这一点?是否有任何sdk方法可用于实现这一点

[编辑]获取BLOB的筛选器类型不会更改

是否可以通过Blob存储元数据实现这一点 有什么sdk方法可以实现它吗

不幸的是,Azure Blob存储不支持您试图实现的目标。您不能查询元数据上的blob或任何其他属性(如上次修改的日期、内容类型等),也不能执行服务器端筛选

在您的案例中,您需要做的是获取blob列表,并在客户端的函数代码中进行过滤


另一种选择是使用其他服务,如Cosmos DB或Azure表存储。使用Cosmos DB和Azure Table Storage,您可以将此元数据与blob URL一起存储在那里,并在这些存储中进行搜索以获得所需的结果。

感谢您的回复。我很感激。Azure表存储方法是否比加载所有BLOB元素并在客户端过滤它们更好?两个appraochesIt对性能的影响取决于容器中的blob数量。在一个请求中,您只能列出5000个blob。因此,如果您的blob计数很低,我认为客户端过滤没有问题。接下来的一个问题是:一旦一个标记被分配给一个blob,它会改变吗?如果没有,那么有更好的方法来完成任务。一定要让我知道,我会相应地更新答案。再次感谢。是的,标签根本不会改变。