使用AWS SDK上传S3文件遇UnknownEndpoint错误,AWS CLI可正常上传求助
解决AWS SDK上传S3报UnknownEndpoint错误的办法
更新AWS SDK版本
旧版SDK可能对部分区域的支持存在问题,直接更新到对应语言的最新稳定版。比如JavaScript环境执行:npm update aws-sdkPython环境执行:
pip install --upgrade boto3校验代码中的区域配置
确认S3客户端初始化时的region参数准确设置为ap-south-1,避免拼写错误。同时检查运行环境的AWS_REGION环境变量,是否被错误设置为其他区域,导致SDK自动读取了错误的区域配置。移除手动设置的端点参数
检查代码中是否手动指定了endpoint参数,这会导致SDK生成错误的访问域名。确保让SDK自动生成对应区域的S3端点,不要自定义端点配置(除非是使用S3兼容存储)。排查网络与环境限制
测试代码运行环境能否正常访问<bucket-name>.s3.ap-south-1.amazonaws.com:- 用
curl https://<bucket-name>.s3.ap-south-1.amazonaws.com测试连通性 - 检查环境的防火墙、代理设置,是否阻止了SDK的HTTPS请求;如果是在AWS服务器上,确认安全组、NACLs允许出站访问443端口。
- 用
核对凭证与权限配置
虽然CLI能正常运行,但代码使用的凭证可能与CLI不同:- 检查代码是否通过环境变量、IAM角色或其他方式加载凭证,确保凭证拥有S3上传权限,且没有区域限制
- 确认IAM策略中没有限制访问特定区域的S3资源
检查存储桶命名合规性
确认桶名符合S3命名规则(仅小写字母、数字、连字符,不能以连字符开头/结尾),避免因特殊字符导致端点URL解析错误。
内容的提问来源于stack exchange,提问作者Aanchal Mehrotra
相关产品推荐
相关产品推荐

