【问题标题】:Atomic updates of Azure BlobsAzure Blob 的原子更新
【发布时间】:2017-07-14 04:18:11
【问题描述】:

我知道在 Azure 表存储中,可以自动更新一行中的两个条目。是否可以自动更新 Azure Blob 的内容 + 元数据?

如果我这样做

blob.Metadata["field"] = "helloworld"
blob.UploadFromStream(stream,accessCondition)

这会自动更新吗? (阅读,如果存在“helloworld”,我是否保证 blob 的内容将是流?

【问题讨论】:

  • 您的意思是,元数据和内容是否会同时更新或失败?请澄清。
  • 假设没有失败,有什么办法可以让我只看到“helloworld”但看不到新流,或者新流但看不到“helloworld”
  • 您的意思是,您只想获取元数据而不是实际的 blob 数据(在流中),反之亦然?
  • 不,我想一次性上传流和元数据,这样我就可以保证“helloworld”和新流都会出现

标签: azure azure-blob-storage


【解决方案1】:

您的问题的答案是肯定的,元数据和流都会出现。

基本上当你这样做时:

blob.Metadata["field"] = "helloworld"

没有进行网络调用。此属性存储在blob 对象中。

blob.UploadFromStream(stream,accessCondition)

上面的行实际上是进行网络调用并在 blob 存储中设置 blob 内容和元数据。

【讨论】:

    【解决方案2】:

    如果使用Block Blob,可以先调用Put Block上传内容,再调用Put Block List一次请求提交blob内容和元数据。

    【讨论】:

      猜你喜欢
      • 2018-12-17
      • 1970-01-01
      • 2021-01-29
      • 1970-01-01
      • 1970-01-01
      • 2017-04-09
      • 1970-01-01
      • 1970-01-01
      • 2021-09-12
      相关资源
      最近更新 更多