每当我尝试将存档blob复制到另一个存储帐户并更改其目的地存储层时。我收到以下错误:
Copy source blob has been modified. ErrorCode: CannotVerifyCopySource
我尝试将“热/酷” blob复制到“热/酷/归档”。我仅在将存档复制到热/凉/存档时遇到问题。此外,在同一存储帐户中进行复制时也没有问题。
我正在使用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')
答案 0 :(得分:1)
出现此错误的原因是,仅在同一存储帐户中支持复制存档的Blob,而您正在其他存储帐户中尝试复制。
在REST API
文档页面上:
复制存档的Blob(版本2018-11-09及更高版本)
可以将存档的Blob复制到同一存储中的新Blob 帐户。。这仍将保留最初存档的Blob。什么时候 将存档的Blob复制为源,请求必须包含标头 x-ms-access-tier,指示目标Blob的层。数据 最终将被复制到目标Blob。
答案 1 :(得分:0)
虽然Blob在归档访问层中,但它被认为是脱机的,无法读取或修改。
https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-rehydration
要读取斑点,您需要先对其补水。或者,如上面的链接中所述,您也可以使用CopyBlob操作。我不确定python SDK copy_blob()操作是否在幕后使用该API-如果对您不起作用,可能不知道。