简介
本文档提供关于存储桶、对象的访问控制列表(ACL)的相关 API 概览以及 SDK 示例代码。
API | 操作名 | 操作描述 |
设置存储桶 ACL | 设置指定存储桶的访问权限控制列表 | |
查询存储桶 ACL | 查询指定存储桶的访问权限控制列表 |
存储桶 ACL
设置存储桶 ACL
功能说明
PUT Bucket acl 接口用来设置指定存储桶访问权限控制列表(ACL)。
使用示例
设置存储桶公有读:
cos.putBucketAcl({Bucket: 'examplebucket-1250000000', // 填入您自己的存储桶,必须字段Region: 'COS_REGION', // 存储桶所在地域,例如 ap-beijing,必须字段ACL: 'public-read'}, function(err, data) {console.log(err || data);});
为某个用户赋予存储桶所有权限:
cos.putBucketAcl({Bucket: 'examplebucket-1250000000', // 填入您自己的存储桶,必须字段Region: 'COS_REGION', // 存储桶所在地域,例如 ap-beijing,必须字段GrantFullControl: 'id="qcs::cam::uin/100000000001:uin/100000000001",id="qcs::cam::uin/100000000011:uin/100000000011"' // 100000000001是 uin}, function(err, data) {console.log(err || data);});
通过 AccessControlPolicy 修改存储桶权限:
cos.putBucketAcl({Bucket: 'examplebucket-1250000000', // 填入您自己的存储桶,必须字段Region: 'COS_REGION', // 存储桶所在地域,例如 ap-beijing,必须字段AccessControlPolicy: {"Owner": { // AccessControlPolicy 里必须有 owner"ID": 'qcs::cam::uin/100000000001:uin/100000000001' // 100000000001 是 Bucket 所属用户的 Uin},"Grants": [{"Grantee": {"ID": "qcs::cam::uin/100000000011:uin/100000000011", // 100000000011 是 Uin},"Permission": "WRITE"}]}}, function(err, data) {console.log(err || data);});
参数说明
参数名 | 参数描述 | 类型 | 必填 |
Bucket | 存储桶的名称,命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式 | String | 是 |
Region | String | 是 | |
ACL | String | 否 | |
GrantRead | 赋予被授权者读取存储桶的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者: 当需要给子账号授权时, id="qcs::cam::uin/<OwnerUin>:uin/<SubUin>" 当需要给主账号授权时, id="qcs::cam::uin/<OwnerUin>:uin/<OwnerUin>" 例如 'id="qcs::cam::uin/100000000001:uin/100000000001", id="qcs::cam::uin/100000000001:uin/100000000011"' | String | 否 |
GrantWrite | 赋予被授权者写入存储桶的权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者: 当需要给子账号授权时, id="qcs::cam::uin/<OwnerUin>:uin/<SubUin>" 当需要给主账号授权时, id="qcs::cam::uin/<OwnerUin>:uin/<OwnerUin>" 例如 'id="qcs::cam::uin/100000000001:uin/100000000001", id="qcs::cam::uin/100000000001:uin/100000000011"' | String | 否 |
GrantReadAcp | 赋予被授权者读取存储桶的访问控制列表(ACL)和存储桶策略(Policy)的权限。格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者: 当需要给子账号授权时, id="qcs::cam::uin/<OwnerUin>:uin/<SubUin>" 当需要给主账号授权时, id="qcs::cam::uin/<OwnerUin>:uin/<OwnerUin>" 例如 'id="qcs::cam::uin/100000000001:uin/100000000001", id="qcs::cam::uin/100000000001:uin/100000000011"' | String | 否 |
GrantWriteAcp | 赋予被授权者写入存储桶的访问控制列表(ACL)和存储桶策略(Policy)的权限。格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者: 当需要给子账号授权时, id="qcs::cam::uin/<OwnerUin>:uin/<SubUin>" 当需要给主账号授权时, id="qcs::cam::uin/<OwnerUin>:uin/<OwnerUin>" 例如 'id="qcs::cam::uin/100000000001:uin/100000000001", id="qcs::cam::uin/100000000001:uin/100000000011"' | String | 否 |
GrantFullControl | 赋予被授权者操作存储桶的所有权限,格式:id="[OwnerUin]",可使用半角逗号(,)分隔多组被授权者: 当需要给子账号授权时, id="qcs::cam::uin/<OwnerUin>:uin/<SubUin>" 当需要给主账号授权时, id="qcs::cam::uin/<OwnerUin>:uin/<OwnerUin>" 例如 'id="qcs::cam::uin/100000000001:uin/100000000001", id="qcs::cam::uin/100000000001:uin/100000000011"' | String | 否 |
AccessControlPolicy | 跨域资源共享配置的所有信息列表 | Object | 否 |
- Owner | 存储桶持有者的信息 | Object | 否 |
- - ID | 存储桶持有者的完整 ID,格式为 qcs::cam::uin/[OwnerUin]:uin/[OwnerUin] ,例如 qcs::cam::uin/100000000001:uin/100000000001 ,其中100000000001为 uin | String | 否 |
- Grants | 被授权者信息与权限信息列表 | ObjectArray | 否 |
- - Permission | String | 否 | |
- - Grantee | 被授权者的信息 | Object | 否 |
- - - ID | 被授权者的完整 ID,格式为 qcs::cam::uin/[OwnerUin]:uin/[OwnerUin] ,例如 qcs::cam::uin/100000000001:uin/100000000001 ,其中100000000001为 uin | String | 否 |
- - - DisplayName | 被授权者的名称,一般填写成和 ID 一致的字符串 | String | 否 |
- - - URI | 预设用户组,请参见 ACL 概述 文档中预设用户组部分,例如 http://cam.qcloud.com/groups/global/AllUsers 或 http://cam.qcloud.com/groups/global/AuthenticatedUsers | String | 否 |
回调函数说明
function(err, data) { ... }
参数名 | 参数描述 | 类型 |
err | Object | |
- statusCode | 请求返回的 HTTP 状态码,例如200、403、404等 | Number |
- headers | 请求返回的头部信息 | Object |
data | 请求成功时返回的对象,如果请求发生错误,则为空 | Object |
- statusCode | 请求返回的 HTTP 状态码,例如200、403、404等 | Number |
- headers | 请求返回的头部信息 | Object |
查询存储桶 ACL
功能说明
GET Bucket acl 接口用来查询存储桶的访问控制列表(ACL)。该 API 的请求者需要对存储桶有写入 ACL 权限。
使用示例
cos.getBucketAcl({Bucket: 'examplebucket-1250000000', // 填入您自己的存储桶,必须字段Region: 'COS_REGION', // 存储桶所在地域,例如 ap-beijing,必须字段}, function(err, data) {console.log(err || data);});
返回示例
{"GrantFullControl": "","GrantWrite": "","GrantRead": "","GrantReadAcp": "id=\\"qcs::cam::uin/100000000011:uin/100000000011\\"","GrantWriteAcp": "id=\\"qcs::cam::uin/100000000011:uin/100000000011\\"","ACL": "private","Owner": {"ID": "qcs::cam::uin/100000000001:uin/100000000001","DisplayName": "qcs::cam::uin/100000000001:uin/100000000001"},"Grants": [{"Grantee": {"ID": "qcs::cam::uin/100000000011:uin/100000000011","DisplayName": "qcs::cam::uin/100000000011:uin/100000000011"},"Permission": "READ"}],"statusCode": 200,"headers": {}}
参数说明
参数名 | 参数描述 | 类型 | 必填 |
Bucket | 存储桶的名称,命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式 | String | 是 |
Region | String | 是 |
回调函数说明
function(err, data) { ... }
参数名 | 参数描述 | 类型 |
err | Object | |
- statusCode | 请求返回的 HTTP 状态码,例如200、403、404等 | Number |
- headers | 请求返回的头部信息 | Object |
data | 请求成功时返回的对象,如果请求发生错误则为空 | Object |
- statusCode | 请求返回的 HTTP 状态码,例如200、403、404等 | Number |
- headers | 请求返回的头部信息 | Object |
- ACL | String | |
- GrantRead | 具有读取存储桶权限的被授权者 ID 信息 | String |
- GrantWrite | 具有写入存储桶权限的被授权者 ID 信息 | String |
- GrantReadAcp | 具有读取存储桶的访问控制列表(ACL)和存储桶策略(Policy)权限的被授权者 ID 信息 | String |
- GrantWriteAcp | 具有写入存储桶的访问控制列表(ACL)和存储桶策略(Policy)权限的被授权者 ID 信息 | String |
- GrantFullControl | 具有存储桶所有权限的被授权者 ID 信息 | String |
- Owner | 存储桶持有者的信息 | Object |
- - DisplayName | 存储桶持有者的名称 | String |
- - ID | 存储桶持有者的完整 ID 格式为 qcs::cam::uin/<OwnerUin>:uin/<SubUin> 如果是主账号,<OwnerUin> 和 <SubUin> 是同一个值 | String |
- Grants | 被授权者信息与权限信息列表 | ObjectArray |
- - Permission | 指明授予被授权者的权限信息,枚举值:READ、WRITE、READ_ACP、WRITE_ACP、FULL_CONTROL | String |
- - Grantee | 被授权者的信息 | Object |
- - - DisplayName | 被授权者的名称 | String |
- - - ID | 被授权者的完整 ID: 如果是主账号,格式为 qcs::cam::uin/<OwnerUin>:uin/<OwnerUin> 或 qcs::cam::anyone:anyone (指代所有用户)如果是子账号,格式为 qcs::cam::uin/<OwnerUin>:uin/<SubUin> | String |
- - - URI | 预设用户组,请参见 ACL 概述 文档中预设用户组部分,例如 http://cam.qcloud.com/groups/global/AllUsers 或 http://cam.qcloud.com/groups/global/AuthenticatedUsers | String |