As listas de controle de acesso (ACLs) de objetos incluem privada, leitura pública e leitura e gravação públicas. 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 nome de domínio personalizado ou Security Token Service (STS). Para mais informações, consulte Inicialização (Android SDK).
ACLs de objetos
Existem três tipos de permissões de acesso a arquivos:
|
Permissões de acesso ao arquivo |
Descrição |
|
Private |
Apenas o proprietário do objeto e usuários autorizados têm permissões de leitura e gravação no objeto. |
|
Public-read |
O proprietário do objeto e usuários autorizados têm permissões de leitura e gravação. Outros usuários têm apenas permissão de leitura. Tenha cuidado ao definir a ACL do objeto com este valor. |
|
Public-read-write |
Todos os usuários têm permissões de leitura e gravação no objeto. Tenha cuidado ao definir a ACL do objeto com este 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 que consulta a ACL de um objeto, consulte GetObjectACL.
Para mais detalhes sobre como inicializar uma instância OSSClient, consulte Inicialização.