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

如何从本地Python脚本上传文件到Azure Blob容器?上传无响应排查

问题分析与解决方案

你的代码核心问题在于容器名称的错误指定,以及部分参数使用不当,导致请求无法正确到达Azure服务,进而出现程序无响应的情况。

错误点拆解

  • 容器名称错误:你传入的container_name是完整的Blob存储路径(https://containerxyz.blob.core.windows.net/a/b/raw/),但Azure SDK要求container_name仅为容器的实际名称(比如示例中的a),路径前缀(b/raw/)需要合并到Blob的名称中。
  • 参数使用冲突:第一个代码示例中,get_blob_client的blob参数错误传入了文件内容contents,而非Blob的名称;同时upload_blob重复传递name参数,导致逻辑冲突。

修正后的代码示例

方式1:使用BlobServiceClient

from azure.storage.blob import BlobServiceClient
from azure.identity import DefaultAzureCredential

account_url = "https://containerxyz.blob.core.windows.net"
default_credential = DefaultAzureCredential()
blob_service_client = BlobServiceClient(account_url, credential=default_credential)

# 仅传入容器的实际名称
container_name = 'a'
# Blob名称包含路径前缀和文件名
blob_name = 'b/raw/test.txt'
contents = 'test'

# 指定正确的容器和Blob名称
blob_client = blob_service_client.get_blob_client(container=container_name, blob=blob_name)
# 无需传递name参数,直接上传数据
blob_client.upload_blob(data=contents, overwrite=True)

方式2:使用ContainerClient

from azure.storage.blob import BlobServiceClient
from azure.identity import DefaultAzureCredential

account_url = "https://containerxyz.blob.core.windows.net"
default_credential = DefaultAzureCredential()
blob_service_client = BlobServiceClient(account_url, credential=default_credential)

container_name = 'a'
blob_name = 'b/raw/test.txt'
data = 'test'

container_client = blob_service_client.get_container_client(container=container_name)
# 传入包含路径的Blob名称
container_client.upload_blob(name=blob_name, data=data, overwrite=True)

额外排查步骤

如果修正后仍出现无响应情况,可从以下方向排查:

  • 凭据有效性:确保本地已通过az login登录Azure CLI,或已设置正确的环境变量(AZURE_CLIENT_ID、AZURE_CLIENT_SECRET、AZURE_TENANT_ID),让DefaultAzureCredential能正常获取访问权限。
  • 网络连通性:检查运行脚本的环境是否能访问Azure Blob存储端点,可尝试直接访问account_url确认网络通畅。
  • 开启调试日志:添加日志输出,查看请求执行细节,定位卡顿环节:
    import logging
    logging.basicConfig(level=logging.DEBUG)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 09:34:54