【问题标题】:Setting Metadata on an archived blob in Azure在 Azure 中的存档 blob 上设置元数据
【发布时间】:2018-02-21 02:57:54
【问题描述】:
我想在已归档(当前正在补水)的 blob 上添加“x-ms-meta-name:string-value”类型的新标头。但是,设置 Blob 属性和设置 Blob 元数据 REST API 失败,并显示“HTTP 状态代码:409 此操作不允许在已归档的 Blob 上”。
有什么方法可以将元数据标头添加到存档中的 blob 中?
【问题讨论】:
标签:
azure
azure-storage
azure-blob-storage
【解决方案1】:
只要 blob 是 Archived,AFAIK 就允许对 blob 进行很少的操作:
- 您可以读取 blob 的属性。
- 您可以删除 blob。
- 您可以更改 blob 层(从存档更改为热或冷)。
现在来回答您的问题,为了更改存档 blob 的元数据,您需要将其层更改为 Hot 或 Cool(即重新水化 blob)。更改 Blob 的层后,您可以更改元数据,然后再次将 Blob 的层更改为存档。
请注意,再水化 blob 是一项耗时的操作(最多可能需要几个小时)。不仅如此,还有补水惩罚(因为缺少更好的词)。
【讨论】:
-
我们还可以从link 获得有关存档访问层的更多详细信息。
【解决方案2】:
当 blob 在存档存储中时,它处于脱机状态,无法读取(元数据除外,元数据在线且可用)、复制、覆盖或修改。您也不能在存档存储中拍摄 blob 的快照。但是,您可以使用现有操作来删除、列出、获取 blob 属性/元数据,或更改 blob 的层。
要读取存档存储中的数据,您必须首先将 blob 的层更改为热层或冷层。这个过程被称为再水合,最多可能需要 15 小时才能完成。
之后,您应该可以添加元数据了。
更多信息可以在here找到。