如何使用 Python OSS2 为特定路径下所有对象设置公开访问权限并继承 ACL?
python oss2 如何为特定路径下所有对象设置公开访问权限,并继承路径的 acl
在 python oss2 中,要为特定路径下的所有对象设置公开访问权限,并让新插入的对象继承路径的 acl,可以使用 put_bucket_policy api,而不是 put_bucket_acl api。
put_bucket_policy api 允许用户设置 bucket 的访问控制策略,可以针对特定路径进行设置。以下是如何使用 python oss2 实现该操作:
import oss2 # 创建 OSS2 客户端实例 oss2_client = oss2.OssClient('endpoint', 'access key id', 'access key secret') # Bucket 名称 bucket_name = 'bucket-name' # 欲公开访问的路径前缀 path_prefix = 'sample/video' # 创建 Bucket 策略 bucket_policy = { "Version": "1", "Statement": [ { "Action": [ "oss:GetObject" ], "Effect": "Allow", "Principal": {"*": ""}, # 授予所有用户 (匿名用户) 权限 "Resource": ["oss://{}/{}/".format(bucket_name, path_prefix)] # 设置路径前缀 } ] } # 设置 Bucket 策略 oss2_client.put_bucket_policy(bucket_name, bucket_policy)
通过上述代码,可以将 sample/video 路径下的所有对象设置为公开访问,而且该路径下以后新写入的对象也都会继承这个 acl。
以上就是如何使用 Python OSS2 为特定路径下所有对象设置公开访问权限并继承 ACL?的详细内容,更多请关注硕下网其它相关文章!