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

访问孟买区域S3 Bucket遇400错误:需使用AWS4-HMAC-SHA256

解决AWS S3孟买区域的AWS4-HMAC-SHA256授权错误

这个问题我碰到过好几次了——孟买(ap-south-1)是AWS的较新区域,只支持AWS4-HMAC-SHA256签名机制,而你用的旧版boto库默认用的是老的AWS2签名,这就直接导致了这个400错误。下面是具体的解决步骤:

1. 确保你的boto版本支持AWS4签名

首先检查当前boto版本,非常旧的版本(低于2.6.0)不支持AWS4签名:

pip show boto

如果版本过低,执行升级:

pip install --upgrade boto

2. 在代码中指定使用S3v4签名

在创建S3连接时,显式指定signature_version='s3v4'和正确的区域region_name='ap-south-1',示例代码如下:

import boto
from boto.s3.connection import S3Connection

# 替换成你的密钥和桶名
conn = S3Connection(
    aws_access_key_id='YOUR_AWS_ACCESS_KEY',
    aws_secret_access_key='YOUR_AWS_SECRET_KEY',
    is_secure=True,  # 必须启用HTTPS
    signature_version='s3v4',
    region_name='ap-south-1'
)
bucket = conn.get_bucket('your-bucket-name')

3. 全局配置(可选)

如果不想在每个连接里重复设置,可以修改boto的配置文件(通常是~/.boto),添加以下内容来全局启用S3v4签名:

[Boto]
signature_version = s3v4

[s3]
region = ap-south-1

补充说明

AWS在2014年之后推出的新区域(比如ap-south-1、eu-central-1等)都不再兼容旧的AWS2签名,必须使用AWS4-HMAC-SHA256。这是为了提升安全性和区域独立性,所以只要访问这些新区域,就必须确保签名版本正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:59:26