使用AWS Boto3 Python创建S3存储桶报错求助
解决AWS Boto3创建S3存储桶的IllegalLocationConstraintException错误
错误原因
us-east-1是S3的默认区域,创建该区域的存储桶时不需要指定LocationConstraint参数,强行传递会与默认请求端点产生冲突,进而触发这个错误。
修正后的代码
调整函数逻辑,将us-east-1和region=None的情况统一处理,不传递位置约束参数:
import boto3 s3 = boto3.resource('s3') def create_bucket(bucket_name, region='us-east-1'): # us-east-1无需指定LocationConstraint if region == 'us-east-1' or region is None: s3.create_bucket(Bucket=bucket_name) else: location = {'LocationConstraint': region} s3.create_bucket( Bucket=bucket_name, CreateBucketConfiguration=location ) create_bucket('my-testing-bucket')
额外注意事项
- 确保你的AWS本地配置(
~/.aws/config文件或环境变量)中的区域与目标区域匹配,也可以在初始化S3资源时显式指定区域:s3 = boto3.resource('s3', region_name='us-east-1') - S3存储桶名称是全局唯一的,如果
my-testing-bucket已被他人占用,会触发名称冲突错误,建议更换为更独特的名称。
内容的提问来源于stack exchange,提问作者Kusuma ningrat
相关产品推荐
相关产品推荐

