As listas de controle de acesso (ACLs) de objeto incluem private, public-read e public-read-write. Este tópico descreve como obter a ACL de um objeto.
Observações de uso
Antes de executar o código de exemplo deste tópico, crie uma instância OSSClient por meio de métodos como um nome de domínio personalizado ou o Security Token Service (STS). Para mais informações, consulte Initialization (Android SDK).
ACLs de objeto
Existem três tipos de permissões de acesso a arquivos:
|
Permissões de acesso ao arquivo |
Descrição |
|
Private |
Somente o proprietário do objeto e os usuários autorizados têm permissões de leitura e escrita no objeto. |
|
Public-read |
Somente o proprietário do objeto e os usuários autorizados têm permissões de leitura e escrita no objeto. Os demais usuários têm apenas permissão de leitura. Tenha cuidado ao definir a ACL do objeto com esse valor. |
|
Public-read-write |
Todos os usuários têm permissões de leitura e escrita no objeto. Tenha cuidado ao definir a ACL do objeto com esse valor. |
Exemplos
O código de exemplo a seguir mostra como obter a ACL de um objeto chamado exampleobject.txt em um bucket chamado examplebucket:
// Specify the bucket name and the full path of the object. Example: examplebucket and exampledir/exampleobject.txt. The full path of the object cannot contain the bucket name.
GetObjectACLRequest request = new GetObjectACLRequest("examplebucket", "exampledir/exampleobject.txt");
// OSS SDK for Android does not support setting object ACLs. You can only get object ACLs.
// The following code shows how to get the ACL of an object.
oss.asyncGetObjectACL(request, new OSSCompletedCallback<GetObjectACLRequest, GetObjectACLResult>() {
@Override
public void onSuccess(GetObjectACLRequest request, GetObjectACLResult result) {
Log.d("GetObjectACL", "Success!");
Log.d("ObjectAcl", result.getObjectACL());
Log.d("Owner", result.getObjectOwner());
Log.d("ID", result.getObjectOwnerID());
}
@Override
public void onFailure(GetObjectACLRequest request, ClientException clientException, ServiceException serviceException) {
// Request exceptions.
if (clientException != null) {
// Client exceptions, such as network exceptions.
clientException.printStackTrace();
}
if (serviceException != null) {
// Server exceptions.
Log.e("ErrorCode", serviceException.getErrorCode());
Log.e("RequestId", serviceException.getRequestId());
Log.e("HostId", serviceException.getHostId());
Log.e("RawMessage", serviceException.getRawMessage());
}
}
});
Referências
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.