Django项目上传图片至S3 Bucket遇NoSuchBucket错误求助
解决Django上传S3时的NoSuchBucket错误
核心问题排查
桶名不匹配
Django配置里的AWS_STORAGE_BUCKET_NAME = 'app_name',但S3桶策略中指定的资源是arn:aws:s3:::novacreditbank/*,两者桶名不一致,这是触发NoSuchBucket错误的直接原因。权限不足
当前桶策略仅允许s3:GetObject操作,而上传文件需要s3:PutObject权限,即使桶名正确,后续也会出现权限错误。
修复步骤
修正桶名配置
将Django settings中的AWS_STORAGE_BUCKET_NAME改为实际存在的S3桶名novacreditbank,同时确认该桶已在AWS控制台成功创建。若桶不在默认的us-east-1区域,需添加区域配置:AWS_S3_REGION_NAME = '你的桶所在区域,比如ap-southeast-1'更新S3桶策略
修改桶策略,添加s3:PutObject权限,确保可以上传文件:{ "Version": "2012-10-17", "Id": "Policy1665038511106", "Statement": [ { "Sid": "Stmt1665038504281", "Effect": "Allow", "Principal": "*", "Action": ["s3:GetObject", "s3:PutObject"], "Resource": "arn:aws:s3:::novacreditbank/*" } ] }同时确认你使用的IAM用户(对应
AWS_S3_ACCESS_KEY_ID)本身拥有s3:PutObject相关权限,IAM权限与桶策略需同时允许该操作。验证配置
重启Django服务后,重新尝试上传操作,确认错误是否消失。
内容的提问来源于stack exchange,提问作者Neo_77cyber
相关产品推荐
相关产品推荐

