
如何在 python oss2 中仅对特定路径对象设置公开访问权限?
oss2 中使用 put_bucket_acl api 可以设置整个存储桶的访问控制列表 (acl),但在某些情况下,我们需要对特定路径下的对象设置单独的访问权限。例如,要使 sample/video 路径下的所有对象都可公开访问,并使后续写入该路径下的对象继承相同的 acl。
要实现此目的,请使用 put_bucket_policy api 而不是 put_bucket_acl。通过 put_bucket_policy,我们可以制定 bucketpolicy,其中包含授予匿名用户(principal 为 *)读取权限的声明,如下所示:
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "oss:GetObject",
"Effect": "Allow",
"Principal": "*",
"Resource": ["acs:oss:*:*:sample/video/*"]
}
]
}其中:
立即学习“Python免费学习笔记(深入)”;
- version 指定 bucketpolicy 的版本。
- statement 数组中包含一个策略声明,将 oss:getobject 权限授予针对特定路径下的对象进行匿名读取。
更新此 bucketpolicy 将确保 sample/video 路径下的所有对象都可公开访问,并且写入该路径下的新对象也将继承此 acl。










