You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Blob Storage同名文件传不同文件夹报BlobAlreadyExists错误求助

Azure Blob 上传报 BlobAlreadyExists 错误的解决办法

问题说明

要上传多个名为data的文件到Azure Blob,打算给每个文件创建独立虚拟文件夹存放,但运行代码时一直触发<Code>BlobAlreadyExists</Code>错误,相关代码如下:

blob_service_client = BlobServiceClient.from_connection_string(connection_string)
blob_client = blob_service_client.get_blob_client(container=container_name+'\\'+id+'\\'+uploadnr, blob=filename)
with open(pathF+filename,"rb") as data:
     blob_client.upload_blob(data)
     print(f"Uploaded {filename}.")

解决思路

  • 修正路径分隔符:Azure Blob的虚拟文件夹路径使用正斜杠/,而非代码中的反斜杠\。你当前把id和uploadnr拼到了容器名称里,导致所有文件实际被传到了同一个错误路径下,自然会触发冲突。正确写法是将虚拟路径放在blob参数中:

    blob_client = blob_service_client.get_blob_client(
        container=container_name, 
        blob=f"{id}/{uploadnr}/{filename}"
    )
    
  • 允许覆盖现有Blob:即便路径正确,若目标位置已存在同名文件,默认的upload_blob方法会抛出错误。可以通过添加overwrite=True参数强制覆盖:

    blob_client.upload_blob(data, overwrite=True)
    
  • 提前检查Blob是否存在(可选):如果不想覆盖现有文件,可以先判断目标Blob是否存在,再执行对应逻辑:

    if not blob_client.exists():
        blob_client.upload_blob(data)
        print(f"Uploaded {filename}.")
    else:
        print(f"{filename} already exists in {id}/{uploadnr}/, skip upload.")
    

内容的提问来源于stack exchange,提问作者Kano

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 05:15:35