Modifique a lista de controle de acesso (ACL) de um objeto. Somente o proprietário do bucket com permissões de leitura e gravação no objeto pode chamar esta operação.
Versionamento
Por padrão, o PutObjectACL configure a ACL da versão atual de um objeto. Especifique um ID de versão para configurar a ACL de uma versão específica.
Se a versão especificada for um marcador de exclusão, o OSS retornará 405 MethodNotAllowed.
Caso nenhum ID de versão seja especificado e a versão mais recente seja um marcador de exclusão, o OSS retornará 404 NoSuchKey.
Visão geral da ACL
A operação PutObjectACL defina o cabeçalho x-oss-object-acl para configurar a ACL de um objeto. A tabela a seguir descreve os valores válidos de ACL.
|
ACL |
Descrição |
|
private |
Apenas o proprietário do objeto tem permissões de leitura e gravação. Outros usuários não podem acessar o objeto. |
|
public-read |
O proprietário do objeto tem permissões de leitura e gravação. Outros usuários têm acesso somente leitura. |
|
public-read-write |
Todos os usuários têm permissões de leitura e gravação no objeto. |
|
default |
O objeto herda a ACL do bucket. |
As ACLs de objeto têm precedência sobre as ACLs de bucket. Por exemplo, um objeto public-read-write em um bucket privado é acessível a todos os usuários. Se nenhuma ACL de objeto estiver definida, o objeto herdará a ACL do bucket.
Operações de leitura: GetObject, HeadObject, CopyObject e UploadPartCopy. CopyObject e UploadPartCopy leem o objeto source. Operações de gravação: PutObject, PostObject, AppendObject, DeleteObject, DeleteMultipleObjects, CompleteMultipartUpload e CopyObject. CopyObject grava no objeto de destino.
Inclua o cabeçalho x-oss-object-acl nas operações de gravação para definir a ACL do objeto. Por exemplo, inclua x-oss-object-acl em uma solicitação PutObject para definir a ACL do objeto carregado.
Permissões
Por padrão, uma conta Alibaba Cloud tem permissões totais. Usuários RAM ou funções RAM vinculados a uma conta Alibaba Cloud não possuem permissões por padrão. A conta Alibaba Cloud ou o administrador da conta deve conceder permissões de operação por meio de políticas do RAM ou Bucket Policy.
|
API |
Action |
Descrição |
|
PutObjectACL |
|
Modifique a ACL de um objeto em um bucket. |
|
|
Modifique a ACL de uma versão específica de um objeto. |
Sintaxe
PUT /ObjectName?acl HTTP/1.1
x-oss-object-acl: Permission
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue
Cabeçalhos da solicitação
|
Cabeçalho |
Tipo |
Obrigatório |
Exemplo |
Descrição |
|
x-oss-object-acl |
String |
Sim |
public-read |
A ACL do objeto. Valores válidos:
Para mais informações, consulte ACLs de objetos. |
Para obter mais informações sobre os cabeçalhos comuns de solicitação em uma requisição PutObjectACL, como Host e Date, consulte Cabeçalhos comuns de solicitação.
Cabeçalhos da resposta
A resposta a uma solicitação PutObjectACL contém apenas cabeçalhos comuns de resposta. Para mais informações, consulte Cabeçalhos comuns de resposta.
Exemplos
-
Modificar a ACL de um objeto em um bucket sem versionamento
Solicitação de exemplo
PUT /test-object?acl HTTP/1.1 x-oss-object-acl: public-read Host: oss-example.oss-cn-hangzhou.aliyuncs.com Date: Wed, 29 Apr 2015 05:21:12 GMT Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218eResposta de exemplo
HTTP/1.1 200 OK x-oss-request-id: 559CC9BDC755F95A64485981 Date: Wed, 29 Apr 2015 05:21:12 GMT Content-Length: 0 Connection: keep-alive Server: AliyunOSS -
Modificar a ACL de um objeto em um bucket com versionamento
Solicitação de exemplo
PUT /example?acl&versionId=CAEQMhiBgIC3rpSD0BYiIDBjYTk5MmIzN2JlNjQxZTFiNGIzM2E3OTliODA0**** HTTP/1.1 x-oss-object-acl: public-read Host: oss-example.oss-cn-hangzhou.aliyuncs.com Date: Tue, 09 Apr 2019 06:30:11 GMT Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218eResposta de exemplo
HTTP/1.1 200 OK x-oss-version-id: CAEQMhiBgIC3rpSD0BYiIDBjYTk5MmIzN2JlNjQxZTFiNGIzM2E3OTliODA0**** x-oss-request-id: 5CAC3BF3B7AEADE017000624 Date: Tue, 09 Apr 2019 06:30:11 GMT Content-Length: 0 Connection: keep-alive Server: AliyunOSS
SDKs do OSS
Os seguintes SDKs do OSS oferecem suporte ao PutObjectACL:
ossutil
Para obter informações sobre o comando ossutil correspondente à operação PutObjectACL, consulte put-object-acl.
Códigos de erro
|
Código de erro |
Código de status HTTP |
Descrição |
|
AccessDenied |
403 |
Você não é o proprietário do bucket ou não possui permissões de leitura e gravação no objeto. |
|
InvalidArgument |
400 |
O valor especificado para x-oss-object-acl é inválido. |
|
FileAlreadyExists |
409 |
O objeto de destino é um diretório em um bucket com namespace hierárquico. |