设置public-read-write ACL的S3对象,匿名用户可无预签名URL上传吗?
问题解答
是的,匿名用户无需预签名URL就能向你配置的这个S3对象上传内容。
你通过以下代码给目标S3对象设置了public-read-write ACL:
o = s3.Object(bucket, key) o.Acl().put(ACL='public-read-write')
这个ACL权限的作用就是授予所有匿名用户对该对象的两类核心权限:
- 读取对象内容的权限(对应你已经验证的公开访问能力)
- 修改/上传对象内容的权限(允许匿名发起PUT请求覆盖或更新该对象)
只要你的S3服务端点(也就是你提到的https://hostname/tenant:bucket/key)支持匿名PUT请求,任何知道该对象路径的匿名用户都可以直接通过标准的HTTP PUT操作上传内容,不需要生成预签名URL。
⚠️ 注意:这种权限配置风险极高,任何人都能随意修改、覆盖甚至删除这个对象,还可能带来意外的存储流量费用,非必要场景不建议使用。
内容的提问来源于stack exchange,提问作者rkj
相关产品推荐
相关产品推荐

