如何解决Backblaze B2 S3兼容API的'Unsupported value for canned acl 'private''错误?
解决Backblaze B2 S3兼容API的InvalidArgument错误
- 错误根源:Backblaze B2的S3兼容API不支持S3标准的
private预定义ACL(canned acl),B2存储的对象默认就是私有状态,无需额外指定该参数。 - 修复方法:
- 检查上传代码/配置,删除所有设置
ACL: 'private'的代码逻辑 - 若使用AWS系列SDK(如boto3、AWS PHP SDK等),确保
PutObject请求中不传入ACL参数 - 代码示例(以Python boto3为例):
错误写法:
正确写法:s3.put_object( Bucket='你的存储桶名称', Key='profile-photos/0Oafj0VpwBbrMtvgLEnBmGl3UsL4rrUaD7HLzRDA.jpg', Body=图片数据, ACL='private' )s3.put_object( Bucket='你的存储桶名称', Key='profile-photos/0Oafj0VpwBbrMtvgLEnBmGl3UsL4rrUaD7HLzRDA.jpg', Body=图片数据 )
- 检查上传代码/配置,删除所有设置
- 额外说明:如果需要调整对象的访问权限,请使用Backblaze B2原生的权限机制(比如在控制台生成共享链接,或通过B2原生API设置文件权限),不要依赖S3的ACL参数。
内容的提问来源于stack exchange,提问作者Adefowowe
相关产品推荐
相关产品推荐

