Defina a lista de controle de acesso (ACL) de um objeto com um dos seguintes valores: Inherited from bucket, Private, Public Read e Public Read/Write. Este tópico descreve como gerenciar a ACL de um objeto.
Notas de uso
Antes de executar o código de exemplo deste tópico, crie uma instância OSSClient usando métodos como domínio personalizado ou Security Token Service (STS). Para mais informações, consulte Initialization.
ACLs de objetos
|
Permissões de acesso |
Descrição |
Access Permissions |
|
Inherited from bucket |
Os arquivos herdam as permissões de acesso do bucket. |
default |
|
Private |
Somente o proprietário do objeto e usuários autorizados têm permissões de leitura e gravação sobre o objeto. |
private |
|
Public read |
Somente o proprietário do objeto e usuários autorizados têm permissões de leitura e gravação sobre o objeto. Todos os usuários têm permissão de leitura. Use este valor com cautela ao configurar a ACL do objeto. |
public-read |
|
Public read/write |
Todos os usuários têm permissões de leitura e gravação sobre o objeto. Use este valor com cautela ao configurar a ACL do objeto. |
public-read-write |
A ACL de um objeto tem precedência sobre a ACL do bucket em que o objeto está armazenado. Por exemplo, se a ACL do bucket for private e a ACL de um objeto nesse bucket for public read/write, todos os usuários recebem permissões de leitura e gravação sobre o objeto. Quando a ACL de um objeto não está configurada, o objeto assume a mesma ACL do bucket em que está armazenado.
Configure a ACL de um objeto
O exemplo de código a seguir demonstra como defina a ACL do objeto exampleobject.txt, no bucket examplebucket, como private:
OSSPutObjectACLRequest *request = [OSSPutObjectACLRequest new];
// Specify the name of the bucket. Example: examplebucket.
request.bucketName = @"examplebucket";
// Specify the full path of the object. Do not include the bucket name in the full path. Example: exampleobject.txt.
request.objectKey = @"exampleobject.txt";
/**
* Configure the object ACL.
* public-read
* private
* public-read-write
* default
*/
request.acl = @"private";
OSSTask * putObjectACLTask = [client putObjectACL:request];
[putObjectACLTask continueWithBlock:^id(OSSTask *task) {
if (!task.error) {
NSLog(@"put object ACL success!");
} else {
NSLog(@"put object ACL failed, error: %@", task.error);
}
return nil;
}];
// Implement synchronous blocking to wait for the task to complete.
// [putObjectACLTask waitUntilFinished];
Obter permissões de acesso a arquivos
O exemplo de código a seguir demonstra como consultar a ACL do objeto exampleobject.txt no bucket examplebucket:
OSSGetObjectACLRequest *request = [OSSGetObjectACLRequest new];
// Specify the name of the bucket. Example: examplebucket.
request.bucketName = @"examplebucket";
// Specify the full path of the object. Do not include the bucket name in the full path. Example: exampleobject.txt.
request.objectName = @"exampleobject.txt";
OSSTask * getObjectACLTask = [client getObjectACL:request];
[getObjectACLTask continueWithBlock:^id(OSSTask *task) {
if (!task.error) {
OSSGetObjectACLResult *result = task.result;
NSLog(@"objectACL: %@", result.grant);
} else {
NSLog(@"get object ACL failed, error: %@", task.error);
}
return nil;
}];
// Implement synchronous blocking to wait for the task to complete.
// [putObjectACLTask waitUntilFinished];
Referências
Para mais informações sobre a operação de API usada para configurar a ACL de um objeto, consulte PutObjectACL.
Para mais informações sobre a operação de API usada para consultar a ACL de um objeto, consulte GetObjectACL.
Para mais informações sobre como inicializar uma instância OSSClient, consulte Initialization.