Azure. Не удается скопировать архивные двоичные объекты из одной учетной записи хранения в другую? - PullRequest
1 голос
/ 25 октября 2019

Всякий раз, когда я пытаюсь скопировать архивные двоичные объекты в другую учетную запись хранения и изменить ее уровень в месте назначения. Я получаю следующую ошибку:

Copy source blob has been modified. ErrorCode: CannotVerifyCopySource

Я попытался скопировать горячие / холодные объекты в Hot / Cool / Archive. Я сталкиваюсь с проблемой только при копировании архива в 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')

Ответы [ 2 ]

1 голос
/ 25 октября 2019

Причина, по которой вы получаете эту ошибку, заключается в том, что копирование заархивированного большого двоичного объекта поддерживается только в одной и той же учетной записи хранения, и вы пытаетесь выполнить его в другой учетной записи хранения.

Из REST API страница документации:

Копирование заархивированного большого двоичного объекта (версия 2018-11-09 и более новые)

Заархивированный большой двоичный объект можно скопировать вновый BLOB-объект в той же учетной записи хранения. Это по-прежнему оставит изначально заархивированный BLOB-объект как есть. При копировании заархивированного большого двоичного объекта в качестве источника запрос должен содержать заголовок x-ms-access-tier, указывающий уровень целевого большого двоичного объекта. В конечном итоге данные будут скопированы в целевой объект.

0 голосов
/ 25 октября 2019

Пока большой двоичный объект находится на уровне доступа к архиву, он считается автономным и не может быть прочитан или изменен.

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

Для чтения большого двоичного объектаВам либо нужно сначала увлажнить его. Или, как описано в ссылке выше, вы также можете использовать операцию CopyBlob. Я не уверен, что операция python copyK copy_blob () использует этот API за кулисами - возможно, нет, если он не работал таким образом для вас.

...