AWS S3执行putObject时返回InvalidArgument: null错误如何处理?
错误产生原因
本次返回的400 InvalidArgument错误由无效的ACL配置参数触发:你在上传参数中填写的ACL值为"pulic-read",存在拼写错误,AWS S3合法的公共读预定义ACL为"public-read",非法参数直接被S3接口拒绝。
对应解决方案
- 优先修正ACL参数拼写
将上传代码中的ACL配置修改为正确值即可解决绝大多数该类问题,修正后的上传代码如下:
try { const destinationBucketParams = { Bucket: "my-bucket-2", Key: "resized-00021113-94b7-4fdc-8d4b-0a5dea67daa0", Body: file.Body, ACL: "public-read", ContentType: "image/jpeg" }; await s3.putObject(destinationBucketParams).promise(); } catch (error) { console.log(error); return; }
- 若修正后仍报错,可额外排查以下两项配置:
- 确认目标存储桶
my-bucket-2的部署区域和你S3实例初始化指定的sa-east-1一致,若区域不匹配需要在初始化S3实例时指定目标桶对应区域。 - 确认你使用的AWS身份凭证拥有
my-bucket-2的s3:PutObject、s3:PutObjectAcl操作权限,缺少ACL写入权限也会触发同类参数错误。
内容的提问来源于stack exchange,提问作者nacho
相关产品推荐
相关产品推荐

