Modifica la lista de control de acceso (ACL) de un objeto. Solo el propietario del bucket con permisos de lectura y escritura sobre el objeto puede invocar esta operación.
Control de versiones
De forma predeterminada, PutObjectACL configura la ACL de la versión actual de un objeto. Puede especificar un ID de versión para configurar la ACL de una versión específica.
Si la versión especificada es un marcador de eliminación, OSS devuelve 405 MethodNotAllowed.
Si no se especifica ningún ID de versión y la versión más reciente es un marcador de eliminación, OSS devuelve 404 NoSuchKey.
Descripción general de las ACL
La operación PutObjectACL establece el encabezado x-oss-object-acl para configurar la ACL de un objeto. La siguiente tabla describe los valores válidos de ACL.
|
ACL |
Descripción |
|
private |
Solo el propietario del objeto tiene permisos de lectura y escritura. Los demás usuarios no pueden acceder al objeto. |
|
public-read |
El propietario del objeto tiene permisos de lectura y escritura. Los demás usuarios tienen acceso de solo lectura. |
|
public-read-write |
Todos los usuarios tienen permisos de lectura y escritura sobre el objeto. |
|
default |
El objeto hereda la ACL de su bucket. |
Las ACL de objeto tienen prioridad sobre las ACL de bucket. Por ejemplo, un objeto con configuración public-read-write dentro de un bucket privado es accesible para todos los usuarios. Si no se define una ACL de objeto, este hereda la ACL del bucket.
Operaciones de lectura: GetObject, HeadObject, CopyObject y UploadPartCopy. CopyObject y UploadPartCopy leen el objeto de origen. Operaciones de escritura: PutObject, PostObject, AppendObject, DeleteObject, DeleteMultipleObjects, CompleteMultipartUpload y CopyObject. CopyObject escribe en el objeto de destino.
Puede incluir el encabezado x-oss-object-acl en operaciones de escritura para establecer la ACL del objeto. Por ejemplo, incluya x-oss-object-acl en una solicitud PutObject para definir la ACL del objeto cargado.
Permisos
De forma predeterminada, una cuenta de Alibaba Cloud cuenta con todos los permisos. Los usuarios de RAM o los roles de RAM bajo una cuenta de Alibaba Cloud no tienen ningún permiso por defecto. La cuenta de Alibaba Cloud o el administrador de la cuenta debe otorgar los permisos de operación mediante RAM policies o Bucket Policy.
|
API |
Action |
Descripción |
|
PutObjectACL |
|
Modifica la ACL de un objeto en un bucket. |
|
|
Modifica la ACL de una versión específica de un objeto. |
Sintaxis
PUT /ObjectName?acl HTTP/1.1
x-oss-object-acl: Permission
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue
Encabezados de solicitud
|
Encabezado |
Tipo |
Obligatorio |
Ejemplo |
Descripción |
|
x-oss-object-acl |
String |
Sí |
public-read |
La ACL del objeto. Valores válidos:
Para obtener más información, consulte Object ACLs. |
Para obtener más información sobre los encabezados de solicitud comunes en una petición PutObjectACL, como Host y Date, consulte Common request headers.
Encabezados de respuesta
La respuesta a una solicitud PutObjectACL contiene únicamente encabezados de respuesta comunes. Para obtener más información, consulte Common response headers.
Ejemplos
-
Modificar la ACL de un objeto en un bucket sin control de versiones
Solicitud de ejemplo
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=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218eRespuesta de ejemplo
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 la ACL de un objeto en un bucket con control de versiones
Solicitud de ejemplo
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=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218eRespuesta de ejemplo
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
SDK de OSS
Los siguientes SDK de OSS admiten PutObjectACL:
ossutil
Para obtener información sobre el comando de ossutil correspondiente a la operación PutObjectACL, consulte put-object-acl.
Códigos de error
|
Código de error |
Código de estado HTTP |
Descripción |
|
AccessDenied |
403 |
No es el propietario del bucket o carece de permisos de lectura y escritura sobre el objeto. |
|
InvalidArgument |
400 |
El valor especificado para x-oss-object-acl no es válido. |
|
FileAlreadyExists |
409 |
El objeto de destino es un directorio en un bucket con namespace jerárquico. |