设置对象ACL
功能说明
设置指定桶中对象的访问权限。
方法定义
1. ObsClient->setObjectAcl(array $parameter) 2. ObsClient->setObjectAclAsync(array $parameter, callable $callback)
请求参数
字段名 |
类型 |
约束 |
说明 |
||
---|---|---|---|---|---|
Bucket |
string |
必选 |
桶名。 |
||
Key |
string |
必选 |
对象名。 |
||
VersionId |
string |
可选 |
对象的版本号。 |
||
ACL |
string |
可选 |
|||
Owner |
associative array |
可选 |
对象的所有者。 |
||
ID |
string |
必选 |
对象所有者的DomainId。 |
||
Delivered |
boolean |
可选 |
桶的ACL是否向桶内对象传递。 |
||
Grants |
indexed array |
可选 |
被授权用户权限信息列表。 |
||
Grantee |
Object |
必选 |
被授权用户。 |
||
Type |
string |
必选 |
被授权的用户类型。 |
||
ID |
string |
如果Type为“CanonicalUser”则必选,否则必须为空 |
被授权用户的DomainId。 |
||
URI |
string |
如果Type为“Group”则必选,否则必须为空 |
被授权的用户组。 |
||
Permission |
string |
必选 |
被授予的权限。 |
- Owner和Grants必须配套使用,且与ACL互斥。当设置了这两个字段时,不能设置ACL;反之,当设置了ACL时,不能设置Owner和Grants。
- Owner、Grants与ACL不能全为空。
返回结果
字段名 |
类型 |
说明 |
---|---|---|
HttpStatusCode |
integer |
HTTP状态码。 |
Reason |
string |
HTTP文本描述。 |
RequestId |
String |
OBS服务端返回的请求ID。 |
代码样例
try { $resp = $obsClient->setObjectAcl( [ 'Bucket' => 'bucketname', 'Key' => 'objectkey', 'Owner' => ['ID' => 'ownerid'], 'Grants' => [ ['Grantee' => ['Type' => 'CanonicalUser', 'ID' => 'userid'], 'Permission' => ObsClient::PermissionRead], ['Grantee' => ['Type' => 'CanonicalUser', 'ID' => 'userid'], 'Permission' => ObsClient::PermissionWriteAcp], ['Grantee' => ['Type' => 'Group', 'URI' => ObsClient::GroupAuthenticatedUsers], 'Permission' => ObsClient::PermissionWriteAcp], ['Grantee' => ['Type' => 'Group', 'URI' => ObsClient::GroupAuthenticatedUsers], 'Permission' => ObsClient::PermissionRead], ] ] ); printf ( "RequestId:%s\n", $resp ['RequestId'] ); } catch ( Obs\Common\ObsException $obsException ) { printf ( "ExceptionCode:%s\n", $obsException->getExceptionCode () ); printf ( "ExceptionMessage:%s\n", $obsException->getExceptionMessage () ); }