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

如何用Python从公开AWS S3下载文件?遇权限及SSL问题求助

解决方案

1. 修复boto3匿名访问配置

你之前的代码错误在于创建s3_client时未应用匿名访问配置,正确写法是在创建客户端时指定config参数:

import boto3
from botocore import UNSIGNED
from botocore.config import Config

# 创建匿名S3客户端
s3_client = boto3.client(
    's3',
    config=Config(signature_version=UNSIGNED)
)

# 下载目标文件
s3_client.download_file(
    'oedi-data-lake',
    'nrel-pds-building-stock/end-use-load-profiles-for-us-building-stock/2022/resstock_tmy3_release_1/building_energy_models/upgrade=10/bldg0000001-up10.zip',
    'bldg1.zip'
)

2. 处理SSLCertVerificationError

这个错误大概率和公司网络安全策略相关,比如内部代理、自定义SSL证书限制,可尝试以下解决方式:

方式一:临时跳过SSL验证(仅测试用,不推荐生产环境)

在boto3客户端或requests请求中添加verify=False参数:

# boto3示例
s3_client = boto3.client(
    's3',
    config=Config(signature_version=UNSIGNED),
    verify=False
)

# requests示例
import requests
url = 'https://oedi-data-lake.s3.amazonaws.com/nrel-pds-building-stock/end-use-load-profiles-for-us-building-stock/2022/resstock_tmy3_release_1/building_energy_models/upgrade=10/bldg0000001-up10.zip'
r = requests.get(url, verify=False)
with open('bldg1.zip', 'wb') as f:
    f.write(r.content)

方式二:配置公司根证书

若公司使用自定义SSL证书,将证书文件路径传入verify参数:

# boto3示例
s3_client = boto3.client(
    's3',
    config=Config(signature_version=UNSIGNED),
    verify='/path/to/company-root-cert.pem'
)

# requests示例
r = requests.get(url, verify='/path/to/company-root-cert.pem')

方式三:配置公司代理

若需通过内部代理访问外部网络,在工具中设置代理信息:

# boto3代理配置
proxy_config = Config(
    signature_version=UNSIGNED,
    proxies={
        'http': 'http://your-proxy:port',
        'https': 'https://your-proxy:port'
    }
)
s3_client = boto3.client('s3', config=proxy_config)

# requests代理配置
proxies = {
    'http': 'http://your-proxy:port',
    'https': 'https://your-proxy:port'
}
r = requests.get(url, proxies=proxies)

总结

  • 匿名访问公开S3桶必须在创建客户端时指定Config(signature_version=UNSIGNED)
  • SSL验证错误优先考虑配置公司证书或代理,跳过验证仅作为临时测试方案

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 22:45:37