Todos os produtos
Search
Central de documentação

Object Storage Service:Gerencie as permissões de acesso a arquivos com o OSS SDK for Python 2.0

Última atualização: Jul 03, 2026

Este tópico descreve como gerenciar as listas de controle de acesso (ACLs) de objetos usando o OSS SDK for Python 2.0.

Observações de uso

  • O código de exemplo neste tópico usa o ID da região cn-hangzhou, correspondente à região China (Hangzhou). Por padrão, o acesso aos recursos de um bucket ocorre via endpoint público. Para acessar os recursos do bucket a partir de outros serviços da Alibaba Cloud na mesma região, use um endpoint interno. Para mais informações sobre as regiões e endpoints compatíveis com o OSS, consulte Regiões e endpoints.

  • Para definir as permissões de acesso de um objeto, é necessária a permissão oss:PutObjectAcl. Para obter essas permissões, é necessária a permissão oss:GetObjectAcl. Para mais detalhes, consulte Conceder políticas personalizadas a um usuário RAM.

Método

Configure a ACL de um objeto

put_object_acl(request: PutObjectAclRequest, **kwargs) → PutObjectAclResult

Consulte a ACL de um objeto

get_object_acl(request: GetObjectAclRequest, **kwargs) → GetObjectAclResult

Parâmetros da solicitação

Nome do parâmetro

Tipo

Descrição

request

PutObjectAclRequest

Os parâmetros da solicitação. Para mais informações, consulte PutObjectAclRequest

GetObjectAclRequest

Os parâmetros da solicitação. Para mais informações, consulte GetObjectAclRequest

Parâmetros de resposta

Tipo

Descrição

PutObjectAclResult

O valor de retorno. Para mais informações, consulte PutObjectAclResult

GetObjectAclResult

O valor de retorno. Para mais informações, consulte GetObjectAclResult

Para a definição completa do método de configuração da ACL de um arquivo, consulte put_object_acl.

Para a definição completa do método de obtenção da ACL de um arquivo, consulte get_object_acl.

Tipos de ACL

A tabela a seguir descreve as ACLs disponíveis para configuração em um objeto:

ACL

Descrição

Valor da ACL

Herdar do bucket

Os arquivos herdam as permissões de acesso do bucket.

default

Privado

Somente o proprietário do arquivo e usuários autorizados podem ler e gravar no arquivo. Outros usuários não têm acesso.

private

Leitura pública

Apenas o proprietário e usuários autorizados podem ler e gravar no arquivo. Demais usuários podem somente ler o arquivo. Use esta permissão com cautela.

public-read

Leitura e escrita públicas

Todos os usuários podem ler e gravar no arquivo. Use esta permissão com cautela.

public-read-write

A ACL de um objeto tem precedência sobre a ACL do bucket que o contém. Por exemplo, se a ACL de um bucket for privada, mas a de um objeto dentro dele estiver definida como leitura e escrita públicas, todos os usuários terão permissão para ler e gravar nesse objeto. Quando a ACL de um objeto não é configurada explicitamente, ela assume automaticamente a mesma ACL do bucket onde está armazenado.

Código de exemplo

Veja abaixo o código de exemplo para configurar e obter a ACL de um objeto.

import argparse
import alibabacloud_oss_v2 as oss

# Create a command-line argument parser.
parser = argparse.ArgumentParser(description="put object acl sample")
# Add required parameters: region, bucket name, object key, and access control list (ACL).
parser.add_argument('--region', help='The region in which the bucket is located.', required=True)
parser.add_argument('--bucket', help='The name of the bucket.', required=True)
parser.add_argument('--endpoint', help='The domain names that other services can use to access OSS')
parser.add_argument('--key', help='The name of the object.', required=True)
parser.add_argument('--acl', help='Specify the access permission ACL for the object.', required=True)

def main():
    # Parse command-line arguments.
    args = parser.parse_args()

    # Load access credential information from environment variables.
    credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()

    # Use the default configurations of the SDK.
    cfg = oss.config.load_default()
    # Set the credential provider.
    cfg.credentials_provider = credentials_provider
    # Set the region provided by the user.
    cfg.region = args.region
    # If an endpoint is provided, set the endpoint in the configuration.
    if args.endpoint is not None:
        cfg.endpoint = args.endpoint

    # Create an OSS client.
    client = oss.Client(cfg)

    # Set the ACL of the object.
    result = client.put_object_acl(oss.PutObjectAclRequest(
        bucket=args.bucket,  # The bucket name.
        key=args.key,  # The object key.
        acl=args.acl,  # The new ACL value.
    ))

    # Print the output information after setting the ACL.
    print(f'status code: {result.status_code},'
          f' request id: {result.request_id},'
          f' version id: {result.version_id},'
    )

    # Obtain and print the current ACL settings of the object.
    result = client.get_object_acl(oss.GetObjectAclRequest(
        bucket=args.bucket,
        key=args.key,
    ))

    print(f'status code: {result.status_code},'
          f' request id: {result.request_id},'
          f' acl: {result.acl},'
          f' version id: {result.version_id},'
    )

# Call the main function when this script is run directly.
if __name__ == "__main__":
    main()

Referências

  • Para acessar o código de exemplo completo sobre como definir a ACL de um arquivo, consulte put_object_acl.py.

  • Para acessar o código de exemplo completo sobre como obter a ACL de um arquivo, consulte get_object_acl.py.