Azure:无法将存档Blob从一个存储帐户复制到另一个存储帐户?

时间:2019-10-25 09:17:34

标签: azure azure-storage-blobs azure-blob-storage azure-sdk-python

每当我尝试将存档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')

2 个答案:

答案 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-如果对您不起作用,可能不知道。