Python AzureBlob上载错误:指定的blob已存在
我正在尝试每天将文件上载到Azure容器 我在上载具有相同文件的文件时出错:“指定的blob已存在”(我要覆盖该文件) 错误消息:Python AzureBlob上载错误:指定的blob已存在,python,azure,azure-storage,azure-storage-blobs,Python,Azure,Azure Storage,Azure Storage Blobs,我正在尝试每天将文件上载到Azure容器 我在上载具有相同文件的文件时出错:“指定的blob已存在”(我要覆盖该文件) 错误消息: azure.core.exceptions.ResourceExistsError: The specified blob already exists. RequestId:13d062cd-801e-00a4-77c7-a81c56000000 Time:2019-12-02T04:18:06.0826908Z ErrorCode:BlobAlreadyExis
azure.core.exceptions.ResourceExistsError: The specified blob already exists.
RequestId:13d062cd-801e-00a4-77c7-a81c56000000
Time:2019-12-02T04:18:06.0826908Z
ErrorCode:BlobAlreadyExists
Error:None
查看这篇关于的博客文章 这是开发存储的一个已知问题。当启动多个线程来上载块(构成blob)时,就会发生这种情况。基本上,开发存储使用SQL Server作为数据存储。现在它要做的第一件事是在存储blob信息的表中创建一个条目。如果有多个线程在工作,那么所有这些线程都将尝试执行相同的操作。第一个线程成功后,后续线程将导致引发此异常
如果要使用覆盖现有blob,只需在
upload\u blob
方法中添加overwrite=True
以下是示例代码:
from azure.storage.blob import BlobServiceClient, BlobClient, ContainerClient
conn_str = "xxx"
container_name = "test6"
blob_service_client = BlobServiceClient.from_connection_string(conn_str=conn_str)
blob_client = blob_service_client.get_blob_client(container=container_name,blob="a1.txt")
with open("F:\\temp\\a1.txt","rb") as data:
blob_client.upload_blob(data,overwrite=True)
print("**completed**")
执行代码后,将上载新blob并覆盖现有blob。截图如下:
您检查过文件是否已在blob存储中吗?我检查过,文件是否存在。但是我想覆盖。请看下面我的答案,如果有任何反馈,请告诉我:)。您是否收到这样的消息“Tuple timeout setting is deprecated”@EEEEH,我没有看到此消息。对于哪一行,“blob\u client.upload\u blob(data,overwrite=True)”消息在上传文件成功后显示。这只是一个警告信息吗?不管我的问题为什么解决了!tks
from azure.storage.blob import BlobServiceClient, BlobClient, ContainerClient
conn_str = "xxx"
container_name = "test6"
blob_service_client = BlobServiceClient.from_connection_string(conn_str=conn_str)
blob_client = blob_service_client.get_blob_client(container=container_name,blob="a1.txt")
with open("F:\\temp\\a1.txt","rb") as data:
blob_client.upload_blob(data,overwrite=True)
print("**completed**")