如何使用 Python OSS2 为特定路径对象设置公开访问权限?

如何使用 python oss2 为特定路径对象设置公开访问权限?

如何在 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/*"]
        }
    ]
}

其中:

  • version 指定 bucketpolicy 的版本。
  • statement 数组中包含一个策略声明,将 oss:getobject 权限授予针对特定路径下的对象进行匿名读取。

更新此 bucketpolicy 将确保 sample/video 路径下的所有对象都可公开访问,并且写入该路径下的新对象也将继承此 acl。

以上就是如何使用 Python OSS2 为特定路径对象设置公开访问权限?的详细内容,更多请关注硕下网其它相关文章!