API | 操作名 | 操作描述 |
设置存储桶 ACL | 设置指定存储桶的访问权限控制列表 | |
查询存储桶 ACL | 查询指定存储桶的访问控制列表 |
API | 操作名 | 操作描述 |
设置对象 ACL | 设置存储桶中某个对象的访问控制列表 | |
查询对象 ACL | 查询对象的访问控制列表 |
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://www.tencentcloud.com/document/product/598/32675secret_key = os.environ['COS_SECRET_KEY'] # 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://www.tencentcloud.com/document/product/598/32675region = 'ap-beijing' # 替换为用户的 region,已创建桶归属的 region 可以在控制台查看,https://console.tencentcloud.com/cos5/bucket# COS 支持的所有 region 列表参见 https://www.tencentcloud.com/document/product/436/6224token = None # 如果使用永久密钥不需要填入 token,如果使用临时密钥需要填入,临时密钥生成和使用指引参见 https://www.tencentcloud.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 | 否 |
参数名称 | 参数描述 | 类型 | 是否必填 |
Owner | 存储桶拥有者的信息,包括 DisplayName 和 ID | Dict | 是 |
AccessControlList | 存储桶权限被授予者的信息,包括 Grant 列表 | Dict | 是 |
参数名称 | 参数描述 | 类型 | 是否必填 |
ID | Type 为 CanonicalUser 时,对应权限授予者的 ID,格式为 qcs::cam::uin/[OwnerUin]:uin/[OwnerUin],如 qcs::cam::uin/100000000001:uin/100000000001 | String | 是 |
DisplayName | 权限被授予者的名称,可以不填,或者和ID的值保持一致 | String | 否 |
参数名称 | 参数描述 | 类型 | 是否必填 |
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 | String | 当 Grantee 的 Type 指定为 Group 时必选 | |
Permission | 指明授予被授权者的存储桶权限,可选值有 FULL_CONTROL,WRITE,READ,分别对应读写权限、写权限、读权限 | String | 是 |
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://www.tencentcloud.com/document/product/598/32675secret_key = os.environ['COS_SECRET_KEY'] # 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://www.tencentcloud.com/document/product/598/32675region = 'ap-beijing' # 替换为用户的 region,已创建桶归属的 region 可以在控制台查看,https://console.tencentcloud.com/cos5/bucket# COS 支持的所有 region 列表参见 https://www.tencentcloud.com/document/product/436/6224token = None # 如果使用永久密钥不需要填入 token,如果使用临时密钥需要填入,临时密钥生成和使用指引参见 https://www.tencentcloud.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 | 是 |
{'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 |
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://www.tencentcloud.com/document/product/598/32675secret_key = os.environ['COS_SECRET_KEY'] # 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://www.tencentcloud.com/document/product/598/32675region = 'ap-beijing' # 替换为用户的 region,已创建桶归属的region可以在控制台查看,https://console.tencentcloud.com/cos5/bucket# COS 支持的所有 region 列表参见 https://www.tencentcloud.com/document/product/436/6224token = None # 如果使用永久密钥不需要填入 token,如果使用临时密钥需要填入,临时密钥生成和使用指引参见 https://www.tencentcloud.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 | 否 |
参数名称 | 参数描述 | 类型 | 是否必填 |
Owner | 存储桶拥有者的信息,包括 DisplayName 和 ID | Dict | 是 |
AccessControlList | 存储桶权限被授予者的信息,包括 Grant 列表 | Dict | 是 |
参数名称 | 参数描述 | 类型 | 是否必填 |
ID | Type 为 CanonicalUser 时,对应权限授予者的 ID,格式为 qcs::cam::uin/[OwnerUin]:uin/[OwnerUin],如 qcs::cam::uin/100000000001:uin/100000000001 | String | 是 |
DisplayName | 权限被授予者的名称,可以不填,或者和ID的值保持一致 | String | 否 |
参数名称 | 参数描述 | 类型 | 是否必填 |
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 | String | 当 Grantee 的 Type 指定为 Group 时必选 | |
Permission | 指明授予被授权者的权限信息,可选值有 FULL_CONTROL,READ,分别对应所有权限、读权限 | String | 是 |
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://www.tencentcloud.com/document/product/598/32675secret_key = os.environ['COS_SECRET_KEY'] # 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://www.tencentcloud.com/document/product/598/32675region = 'ap-beijing' # 替换为用户的 region,已创建桶归属的 region 可以在控制台查看,https://console.tencentcloud.com/cos5/bucket# COS 支持的所有 region 列表参见 https://www.tencentcloud.com/document/product/436/6224token = None # 如果使用永久密钥不需要填入 token,如果使用临时密钥需要填入,临时密钥生成和使用指引参见 https://www.tencentcloud.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 | 是 |
{'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 |
本页内容是否解决了您的问题?