Немного лучшим решением является использование метода get_blob_properties
в целевом BLOB-объекте для проверки состояния операции копирования.
Вы можете проверить исходный код copy_blob
, как показано на скриншоте ниже:
Итак, в вашем коде цикла for вы можете написать что-то вроде следующего:
for x in filelist:
block_blob_service.copy_blob(container_name,x,url+x)
copy_status = block_blob_service.get_blob_properties(container_name,x)
#use code below to check the copy status, if it's completed or not.
while(str(copy_status.properties.copy.status) != "success"):
copy_status = block_blob_service.get_blob_properties(container_name,x)
Кстати: а также вы можете отметить, что естьrequires_sync
параметр для метода copy_blob, если он назначен на True, то операция копирования является операцией синхронизации, которая может гарантировать, что следующая будет ждать до завершения предыдущей.Но в настоящее время он доступен только для копий больших двоичных объектов (из и в) для больших двоичных объектов в учетной записи хранения Azure, но не поддерживает сторонний URL-адрес, который вы использовали в посте.