简介
本文档提供关于存储桶、对象的访问控制列表(ACL)的相关 API 概览以及 SDK 示例代码。存储桶 ACL
API | 操作名 | 操作描述 |
PUT Bucket acl | 设置存储桶 ACL | 设置指定存储桶的访问权限控制列表 |
GET Bucket acl | 查询存储桶 ACL | 查询指定存储桶的访问控制列表 |
对象 ACL
API | 操作名 | 操作描述 |
PUT Object acl | 设置对象 ACL | 设置存储桶中某个对象的访问控制列表 |
GET Object acl | 查询对象 ACL | 查询对象的访问控制列表 |
存储桶 ACL
设置存储桶 ACL
功能说明
设置指定存储桶的访问权限控制列表(PUT Bucket acl)。AccessControlPolicy 参数与其它权限参数是互斥的,无法同时指定。
方法原型
put_bucket_acl(Bucket, AccessControlPolicy={}, **kwargs)
请求示例
# -*- coding=utf-8from qcloud_cos import CosConfigfrom qcloud_cos import CosS3Clientimport sysimport osimport logging
# 正常情况日志级别使用 INFO,需要定位时可以修改为 DEBUG,此时 SDK 会打印和服务端的通信信息logging.basicConfig(level=logging.INFO, stream=sys.stdout)
# 1. 设置用户属性, 包括 secret_id, secret_key, region 等。Appid 已在 CosConfig 中移除,请在参数 Bucket 中带上 Appid。Bucket 由 BucketName-Appid 组成secret_id = os.environ['COS_SECRET_ID'] # 用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140secret_key = os.environ['COS_SECRET_KEY'] # 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140region = 'ap-beijing' # 替换为用户的 region,已创建桶归属的 region 可以在控制台查看,https://console.cloud.tencent.com/cos5/bucket # COS 支持的所有 region 列表参见 https://cloud.tencent.com/document/product/436/6224token = None # 如果使用永久密钥不需要填入 token,如果使用临时密钥需要填入,临时密钥生成和使用指引参见 https://cloud.tencent.com/document/product/436/14048scheme = 'https' # 指定使用 http/https 协议来访问 COS,默认为 https,可不填
config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token, Scheme=scheme)client = CosS3Client(config)
response = client.put_bucket_acl( Bucket='examplebucket-1250000000', ACL='public-read')
全部参数请求示例
response = client.put_bucket_acl( Bucket='examplebucket-1250000000', ACL='private'|'public-read'|'public-read-write', GrantFullControl='id="100000000002"', GrantRead='id="100000000003",id="100000000004"', GrantWrite='id="100000000005"', AccessControlPolicy={ 'AccessControlList': { 'Grant': [ { 'Grantee': { 'DisplayName': 'qcs::cam::uin/100000000002:uin/100000000002', 'Type': 'CanonicalUser'|'Group', 'ID': 'qcs::cam::uin/100000000002:uin/100000000002', # Type为CanonicalUser时必须填写ID 'URI': 'http://cam.qcloud.com/groups/global/AllUsers' # Type为Group时必须填写URI }, 'Permission': 'FULL_CONTROL'|'WRITE'|'READ' }, ] }, 'Owner': { 'DisplayName': 'qcs::cam::uin/100000000001:uin/100000000001', 'ID': 'qcs::cam::uin/100000000001:uin/100000000001' # 必须是桶 Owner 的 ID } })
参数说明
参数名称 | 参数描述 | 类型 | 是否必填 |
Bucket | 存储桶名称,由 BucketName-APPID 构成 | String | 是 |
ACL | 设置存储桶的 ACL,例如 ‘private’,’public-read’,’public-read-write’,详情请参见 ACL 概述 | String | 否 |
GrantFullControl | 赋予指定账户对存储桶的读写权限,格式为id="OwnerUin" ,可使用半角逗号(,)分隔多组被授权者,如 id=”100000000001″,id=”100000000002″ |
String | 否 |
GrantRead | 赋予指定账户对存储桶的读权限,格式为id="OwnerUin" ,可使用半角逗号(,)分隔多组被授权者,如 id=”100000000001″,id=”100000000002″ |
String | 否 |
GrantWrite | 赋予指定账户对存储桶的写权限,格式为id="OwnerUin" ,可使用半角逗号(,)分隔多组被授权者,如 id=”100000000001″,id=”100000000002″ |
String | 否 |
AccessControlPolicy | 赋予指定账户对存储桶的访问权限,与其它权限参数是互斥的,无法同时指定 | Dict | 否 |
AccessControlPolicy 参数说明:
参数名称 | 参数描述 | 类型 | 是否必填 |
Owner | 存储桶拥有者的信息,包括 DisplayName 和 ID | Dict | 是 |
AccessControlList | 存储桶权限被授予者的信息,包括 Grant 列表 | Dict | 是 |
Owner 参数说明:
参数名称 | 参数描述 | 类型 | 是否必填 |
ID | Type 为 CanonicalUser 时,对应权限授予者的 ID,格式为 qcs::cam::uin/[OwnerUin]:uin/[OwnerUin],如 qcs::cam::uin/100000000001:uin/100000000001 | String | 是 |
DisplayName | 权限被授予者的名称,可以不填,或者和ID的值保持一致 | String | 否 |
AccessControlList 参数说明:
参数名称 | 参数描述 | 类型 | 是否必填 |
Grant | 存储桶权限被授予者的信息,包括 Grantee 和 Permission | List | 是 |
Grantee | 权限被授予者的信息,包括 DisplayName,Type,ID 和 URI | Dict | 是 |
Type | 权限被授予者的类型,类型为 CanonicalUser 或者 Group | String | 是 |
ID | Type 为 CanonicalUser 时,对应权限授予者的 ID,格式为 qcs::cam::uin/[OwnerUin]:uin/[OwnerUin],如 qcs::cam::uin/100000000001:uin/100000000001 | String | 当 Grantee 的 Type 指定为 CanonicalUser 时必选 |
URI | Type 为 Group 时,填入预设用户组的 URI,例如 http://cam.qcloud.com/groups/global/AllUsers, 详情请参见 ACL 概述 | String | 当 Grantee 的 Type 指定为 Group 时必选 |
Permission | 指明授予被授权者的存储桶权限,可选值有 FULL_CONTROL,WRITE,READ,分别对应读写权限、写权限、读权限 | String | 是 |
返回结果说明
该方法返回值为 None。
查询存储桶 ACL
功能说明
查询指定存储桶的访问权限控制列表(GET Bucket acl)。
方法原型
get_bucket_acl(Bucket, **kwargs)
请求示例
# -*- coding=utf-8from qcloud_cos import CosConfigfrom qcloud_cos import CosS3Clientimport sysimport osimport logging
# 正常情况日志级别使用 INFO,需要定位时可以修改为 DEBUG,此时 SDK 会打印和服务端的通信信息logging.basicConfig(level=logging.INFO, stream=sys.stdout)
# 1. 设置用户属性, 包括 secret_id, secret_key, region 等。Appid 已在 CosConfig 中移除,请在参数 Bucket 中带上 Appid。Bucket 由 BucketName-Appid 组成secret_id = os.environ['COS_SECRET_ID'] # 用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140secret_key = os.environ['COS_SECRET_KEY'] # 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140region = 'ap-beijing' # 替换为用户的 region,已创建桶归属的 region 可以在控制台查看,https://console.cloud.tencent.com/cos5/bucket # COS 支持的所有 region 列表参见 https://cloud.tencent.com/document/product/436/6224token = None # 如果使用永久密钥不需要填入 token,如果使用临时密钥需要填入,临时密钥生成和使用指引参见 https://cloud.tencent.com/document/product/436/14048scheme = 'https' # 指定使用 http/https 协议来访问 COS,默认为 https,可不填
config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token, Scheme=scheme)client = CosS3Client(config)
response = client.get_bucket_acl( Bucket='examplebucket-1250000000')
参数说明
参数名称 | 参数描述 | 类型 | 是否必填 |
Bucket | 存储桶名称,由 BucketName-APPID 构成 | String | 是 |
返回结果说明
Bucket ACL 信息,类型为 dict。
{ 'Owner': { 'DisplayName': 'qcs::cam::uin/100000000001:uin/100000000001', 'ID': 'qcs::cam::uin/100000000001:uin/100000000001' }, 'AccessControlList': { 'Grant': [ { 'Grantee': { 'DisplayName': 'qcs::cam::uin/100000000002:uin/100000000002', 'Type': 'CanonicalUser'|'Group', 'ID': 'qcs::cam::uin/100000000002:uin/100000000002', 'URI': 'http://cam.qcloud.com/groups/global/AllUsers' }, 'Permission': 'FULL_CONTROL'|'WRITE'|'READ' }, ] }}
参数名称 | 参数描述 | 类型 |
Owner | 存储桶拥有者的信息,包括 DisplayName 和 ID,详细说明见 PUT Bucket acl | Dict |
AccessControlList | 存储桶权限被授予者的信息,包括 Grant 列表,详细说明见 PUT Bucket acl | Dict |
对象 ACL
设置对象 ACL
功能说明
设置存储桶中某个对象的访问控制列表(PUT Object acl)。AccessControlPolicy 参数与其它权限参数是互斥的,无法同时指定。
方法原型
put_object_acl(Bucket, Key, AccessControlPolicy={}, **kwargs)
请求示例
# -*- coding=utf-8from qcloud_cos import CosConfigfrom qcloud_cos import CosS3Clientimport sysimport osimport logging
# 正常情况日志级别使用 INFO,需要定位时可以修改为 DEBUG,此时 SDK 会打印和服务端的通信信息logging.basicConfig(level=logging.INFO, stream=sys.stdout)
# 1. 设置用户属性, 包括 secret_id, secret_key, region 等。Appid 已在CosConfig中移除,请在参数 Bucket 中带上 Appid。Bucket 由 BucketName-Appid 组成secret_id = os.environ['COS_SECRET_ID'] # 用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140secret_key = os.environ['COS_SECRET_KEY'] # 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140region = 'ap-beijing' # 替换为用户的 region,已创建桶归属的region可以在控制台查看,https://console.cloud.tencent.com/cos5/bucket # COS 支持的所有 region 列表参见 https://cloud.tencent.com/document/product/436/6224token = None # 如果使用永久密钥不需要填入 token,如果使用临时密钥需要填入,临时密钥生成和使用指引参见 https://cloud.tencent.com/document/product/436/14048scheme = 'https' # 指定使用 http/https 协议来访问 COS,默认为 https,可不填
config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token, Scheme=scheme)client = CosS3Client(config)
response = client.put_object_acl( Bucket='examplebucket-1250000000', Key='exampleobject', ACL='public-read')
全部参数请求示例
response = client.put_object_acl( Bucket='examplebucket-1250000000', Key='exampleobject', ACL='default'|'private'|'public-read', GrantFullControl='id="100000000003"', GrantRead='id="100000000003",id="100000000004"', AccessControlPolicy={ 'AccessControlList': { 'Grant': [ { 'Grantee': { 'DisplayName': 'qcs::cam::uin/100000000002:uin/100000000002', 'Type': 'CanonicalUser'|'Group', 'ID': 'qcs::cam::uin/100000000002:uin/100000000002', # Type为CanonicalUser时必须填写ID 'URI': 'http://cam.qcloud.com/groups/global/AllUsers' # Type为Group时必须填写URI }, 'Permission': 'FULL_CONTROL'|'READ' }, ] }, 'Owner': { 'DisplayName': 'qcs::cam::uin/100000000001:uin/100000000001', 'ID': 'qcs::cam::uin/100000000001:uin/100000000001' } })
参数说明
参数名称 | 参数描述 | 类型 | 是否必填 |
Bucket | 存储桶名称,由 BucketName-APPID 构成 | String | 是 |
Key | 对象键(Key)是对象在存储桶中的唯一标识。例如,在对象的访问域名examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/pic.jpg 中,对象键为 doc/pic.jpg |
String | 是 |
ACL | 设置对象的 ACL,例如 ‘default’,’private’,’public-read’,详情请参见 ACL 概述 | String | 否 |
GrantFullControl | 赋予指定账户对对象的所有权限,格式为id="OwnerUin" ,可使用半角逗号(,)分隔多组被授权者,例如id=”100000000001″,id=”100000000002″ |
String | 否 |
GrantRead | 赋予指定账户对对象的读权限,格式为id="OwnerUin" ,可使用半角逗号(,)分隔多组被授权者,例如id=”100000000001″,id=”100000000002″ |
String | 否 |
AccessControlPolicy | 赋予指定账户对对象的访问权限,与其它权限参数是互斥的,无法同时指定 | Dict | 否 |
AccessControlPolicy 参数说明:
参数名称 | 参数描述 | 类型 | 是否必填 |
Owner | 存储桶拥有者的信息,包括 DisplayName 和 ID | Dict | 是 |
AccessControlList | 存储桶权限被授予者的信息,包括 Grant 列表 | Dict | 是 |
Owner 参数说明:
参数名称 | 参数描述 | 类型 | 是否必填 |
ID | Type 为 CanonicalUser 时,对应权限授予者的 ID,格式为 qcs::cam::uin/[OwnerUin]:uin/[OwnerUin],如 qcs::cam::uin/100000000001:uin/100000000001 | String | 是 |
DisplayName | 权限被授予者的名称,可以不填,或者和ID的值保持一致 | String | 否 |
AccessControlList 参数说明:
参数名称 | 参数描述 | 类型 | 是否必填 |
Grant | 存储桶权限被授予者的信息,包括 Grantee 和 Permission | List | 是 |
Grantee | 权限被授予者的信息,包括 DisplayName,Type,ID 和 URI | Dict | 是 |
Type | 权限被授予者的类型,类型为 CanonicalUser 或者 Group | String | 是 |
ID | Type 为 CanonicalUser 时,对应权限授予者的 ID,格式为 qcs::cam::uin/[OwnerUin]:uin/[OwnerUin],如 qcs::cam::uin/100000000001:uin/100000000001 | String | 当 Grantee 的 Type 指定为 CanonicalUser 时必选 |
URI | Type 为 Group 时,填入预设用户组的 URI,例如 http://cam.qcloud.com/groups/global/AllUsers, 详情请参见 ACL 概述 | String | 当 Grantee 的 Type 指定为 Group 时必选 |
Permission | 指明授予被授权者的权限信息,可选值有 FULL_CONTROL,READ,分别对应所有权限、读权限 | String | 是 |
返回结果说明
该方法返回值为 None。
查询对象 ACL
功能说明
查询对象的访问控制列表(GET Object acl)。
方法原型
get_object_acl(Bucket, Key, **kwargs)
请求示例
# -*- coding=utf-8from qcloud_cos import CosConfigfrom qcloud_cos import CosS3Clientimport sysimport osimport logging
# 正常情况日志级别使用 INFO,需要定位时可以修改为 DEBUG,此时 SDK 会打印和服务端的通信信息logging.basicConfig(level=logging.INFO, stream=sys.stdout)
# 1. 设置用户属性, 包括 secret_id, secret_key, region 等。Appid 已在 CosConfig 中移除,请在参数 Bucket 中带上 Appid。Bucket 由 BucketName-Appid 组成secret_id = os.environ['COS_SECRET_ID'] # 用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140secret_key = os.environ['COS_SECRET_KEY'] # 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140region = 'ap-beijing' # 替换为用户的 region,已创建桶归属的 region 可以在控制台查看,https://console.cloud.tencent.com/cos5/bucket # COS 支持的所有 region 列表参见 https://cloud.tencent.com/document/product/436/6224token = None # 如果使用永久密钥不需要填入 token,如果使用临时密钥需要填入,临时密钥生成和使用指引参见 https://cloud.tencent.com/document/product/436/14048scheme = 'https' # 指定使用 http/https 协议来访问 COS,默认为 https,可不填
config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token, Scheme=scheme)client = CosS3Client(config)
response = client.get_object_acl( Bucket='examplebucket-1250000000', Key='exampleobject')
参数说明
参数名称 | 参数描述 | 类型 | 是否必填 |
Bucket | 存储桶名称,由 BucketName-APPID 构成 | String | 是 |
Key | 对象键(Key)是对象在存储桶中的唯一标识。例如,在对象的访问域名examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/pic.jpg 中,对象键为 doc/pic.jpg |
String | 是 |
返回结果说明
Object ACL 信息,类型为 dict:
{ 'Owner': { 'DisplayName': 'qcs::cam::uin/100000000001:uin/100000000001', 'ID': 'qcs::cam::uin/100000000001:uin/100000000001' }, 'AccessControlList': { 'Grant': [ { 'Grantee': { 'DisplayName': 'qcs::cam::uin/100000000002:uin/100000000002', 'Type': 'CanonicalUser'|'Group', 'ID': 'qcs::cam::uin/100000000002:uin/100000000002', 'URI': 'http://cam.qcloud.com/groups/global/AllUsers' }, 'Permission': 'FULL_CONTROL'|'READ' }, ] }}
参数名称 | 参数描述 | 类型 |
Owner | 对象拥有者的信息,包括 DisplayName 和 ID,详细说明见 PUT Object acl | Dict |
AccessControlList | 对象权限被授予者的信息,包括 Grant 列表,详细说明见 PUT Object acl | Dict |
对象存储官网1折活动,限时活动,即将结束,速速收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠
转转请注明出处:https://www.yunxiaoer.com/146048.html