2

每当我尝试将存档 blob 复制到不同的存储帐户并更改其目标层时。我收到以下错误:

Copy source blob has been modified. ErrorCode: CannotVerifyCopySource

我尝试将 Hot/Cool Blob 复制到 Hot/Cool/Archive。我仅在将存档复制到热/冷/存档时遇到此问题。此外,在同一存储帐户中复制时没有问题。

我正在使用 Azure python SDK:

blob_url = source_block_blob_service.make_blob_url(copy_from_container, blob_name, sas_token = sas)

dest_blob_service.copy_blob(copy_to_container, blob_name, blob_url, requires_sync = True, standard_blob_tier = 'Hot')
4

2 回答 2

1

您收到此错误的原因是因为仅在同一存储帐户中支持复制存档的 blob,并且您正在跨不同的存储帐户进行尝试。

REST API文档页面:

复制存档的 Blob(版本 2018-11-09 及更高版本)

可以将存档的 blob 复制到同一存储帐户中的新 blob。这仍会使最初存档的 blob 保持原样。将存档的 blob 复制为源时,请求必须包含标头 x-ms-access-tier,指示目标 blob 的层。数据最终将被复制到目标 blob。

于 2019-10-25T10:32:46.727 回答
0

当 blob 位于存档访问层时,它被视为脱机并且无法读取或修改。

https://docs.microsoft.com/en-us/azure/storage/blob/storage-blob-rehydration

要读取 blob,您需要先对其进行补水。或者,如上面链接中所述,您也可以使用 CopyBlob 操作。我不确定 python SDK copy_blob() 操作是否在幕后使用该 API - 如果它不适合您,可能不会。

于 2019-10-25T09:45:55.783 回答