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

本地Python上传文件至Azure Blob存储遇连接超时错误求助

解决Azure Blob存储Python上传连接超时问题

先梳理下你遇到的问题:代码在创建容器阶段就触发了连接超时,结合错误信息和代码细节,咱们一步步排查解决:

1. 先修正代码中的语法与参数错误

你的代码存在几处明显错误,先调整这些再排查网络问题:

  • 导入语句需拆分,且PublicAccess未导入
  • create_blob_from_path参数顺序错误,正确顺序是容器名、Blob存储名称、本地文件路径,且一次只能上传单个文件(CSV和PDF需分开调用)

修正后的代码示例:

from azure.storage.blob import BlockBlobService, ContentSettings, PublicAccess

# 替换为你的真实存储账户名和密钥
block_blob_service = BlockBlobService(account_name='your_real_account_name', account_key='your_real_account_key')

container_name = 'cn1'
# 创建容器
block_blob_service.create_container(container_name)
# 设置容器公共访问权限
block_blob_service.set_container_acl(container_name, public_access=PublicAccess.Container)

# 上传CSV文件
block_blob_service.create_blob_from_path(
    container_name,
    'blob.csv',  # Blob在存储中的名称
    'C:/uploads/blob.csv',  # 本地文件路径
    content_settings=ContentSettings(content_type='text/csv')
)

# 上传PDF文件
block_blob_service.create_blob_from_path(
    container_name,
    'blob.pdf',  # Blob在存储中的名称
    'C:/uploads/blob.pdf',  # 本地文件路径
    content_settings=ContentSettings(content_type='application/pdf')
)

2. 排查网络连接基础问题

错误提示显示无法连接到account_name.blob.core.windows.net,先验证网络可达性:

  • 打开命令提示符,执行ping your_real_account_name.blob.core.windows.net(替换为你的真实账户名),检查是否能解析到IP并收到响应
  • 尝试用浏览器访问https://your_real_account_name.blob.core.windows.net,如果无法打开,说明网络层面存在连接障碍

3. 验证存储账户凭据与名称

  • 确认account_name是Azure存储账户的实际账户名(不是显示名称或别名),可在Azure门户存储账户的概览页面查看
  • 确认account_key是有效的访问密钥(可在Azure门户存储账户→访问密钥中复制)
  • 可以用Azure Storage Explorer工具尝试连接存储账户,验证凭据是否正确,如果工具也无法连接,大概率是凭据或网络规则问题

4. 检查Azure存储账户的网络访问限制

登录Azure门户进入你的存储账户:

  • 转到网络选项卡,查看是否设置了防火墙规则或虚拟网络限制
  • 如果设置了允许特定IP访问,确保你的本地机器IP在允许列表内;如果是默认的“允许所有网络”,则跳过此步骤

5. 处理代理或企业防火墙限制

如果你在企业网络环境下,可能存在代理或防火墙阻止了Azure Blob服务的访问:

  • 检查本地防火墙是否允许出站访问443端口(HTTPS协议)
  • 如果使用代理,需在代码中配置代理环境变量:
import os
os.environ['HTTP_PROXY'] = 'http://your_proxy_address:port'
os.environ['HTTPS_PROXY'] = 'http://your_proxy_address:port'

6. 升级Azure存储SDK版本

你使用的是旧版azure-storage-blob SDK(BlockBlobService属于旧版API),建议升级到最新版,新版本修复了大量网络相关问题:

  • 卸载旧版:pip uninstall azure-storage-blob
  • 安装新版:pip install azure-storage-blob
  • 新版代码示例(推荐使用):
from azure.storage.blob import BlobServiceClient, ContentSettings
from azure.storage.blob import PublicAccess

connection_string = "DefaultEndpointsProtocol=https;AccountName=your_account_name;AccountKey=your_account_key;EndpointSuffix=core.windows.net"
blob_service_client = BlobServiceClient.from_connection_string(connection_string)

container_name = "cn1"
container_client = blob_service_client.create_container(container_name)
container_client.set_container_access_policy(public_access=PublicAccess.Container)

# 上传CSV文件
with open("C:/uploads/blob.csv", "rb") as data:
    blob_client = blob_service_client.get_blob_client(container=container_name, blob="blob.csv")
    blob_client.upload_blob(data, content_settings=ContentSettings(content_type='text/csv'))

# 上传PDF文件
with open("C:/uploads/blob.pdf", "rb") as data:
    blob_client = blob_service_client.get_blob_client(container=container_name, blob="blob.pdf")
    blob_client.upload_blob(data, content_settings=ContentSettings(content_type='application/pdf'))

按照以上步骤逐一排查,应该能解决连接超时的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 06:46:37