Azure Blob存储批处理更新。可能?

时间:2018-07-17 09:48:10

标签: c# azure azure-storage-blobs azure-blob-storage

我需要更新现有容器中的Blob元数据。我目前在一个容器中有超过5000个Blob。到目前为止,我的工作:

  • 斑点通过container.ListBlobsSegmentedAsync()BlobContinuationToken

  • 接收
  • 然后我从blob.UpdateMetadataAsync()聚合任务,并通过Task.WhenAll()并发运行它们

总而言之,整个过程大约要花10秒钟在我的机器上。但是据我了解,我给网络造成了压力,因为我需要向Azure发送5k请求,并且它需要处理所有请求。

有更好的方法吗?我可以发送一个批处理请求来执行任务吗,还是只能使用当前的方法?

谢谢!

2 个答案:

答案 0 :(得分:0)

  

我可以发送一个批处理请求来执行任务吗,还是可以使用当前方法?

我不认为有一种方法可以发送批处理请求。

Azure storage blob Rest API,您可以知道没有这样的Rest API。

但是,如果您对Azure存储有任何想法,可以将feedback交给Azure团队。

好的。您可以使用异步并发方式来更新Blob。

  

有更好的方法吗?

如果您不想从客户端发送这么多请求。

我建议您可以使用Azure function http trigger来做到这一点。并在Azure函数中实现更新Blob逻辑。

有关Azure功能的更多信息,请参考此document

答案 1 :(得分:0)

用于Blob存储的批处理API为now in preview。不幸的是,目前它仅支持DeleteBlob和SetBlobTier操作,但即将支持更多操作。

文档:https://docs.microsoft.com/en-us/rest/api/storageservices/blob-batch

相关问题