Modifie la liste de contrôle d'accès (ACL) d'un objet. Seul le propriétaire du bucket disposant des autorisations de lecture et d'écriture sur l'objet peut appeler cette opération.
Versioning
Par défaut, PutObjectACL configure l'ACL de la version actuelle d'un objet. Spécifiez un ID de version pour configurer l'ACL d'une version spécifique.
Si la version spécifiée est un marqueur de suppression, OSS renvoie l'erreur 405 MethodNotAllowed.
Si aucun ID de version n'est spécifié et que la dernière version est un marqueur de suppression, OSS renvoie l'erreur 404 NoSuchKey.
ACL overview
L'opération PutObjectACL définit l'en-tête x-oss-object-acl pour configurer l'ACL d'un objet. Le tableau suivant décrit les valeurs d'ACL valides.
|
ACL |
Description |
|
private |
Seul le propriétaire de l'objet dispose des autorisations de lecture et d'écriture. Les autres utilisateurs ne peuvent pas accéder à l'objet. |
|
public-read |
Le propriétaire de l'objet dispose des autorisations de lecture et d'écriture. Les autres utilisateurs ont un accès en lecture seule. |
|
public-read-write |
Tous les utilisateurs disposent des autorisations de lecture et d'écriture sur l'objet. |
|
default |
L'objet hérite de l'ACL de son bucket. |
Les ACL des objets sont prioritaires sur les ACL des buckets. Par exemple, un objet public-read-write dans un bucket privé est accessible à tous les utilisateurs. Si aucune ACL d'objet n'est définie, l'objet hérite de l'ACL du bucket.
Opérations de lecture : GetObject, HeadObject, CopyObject et UploadPartCopy. CopyObject et UploadPartCopy lisent l'objet source. Opérations d'écriture : PutObject, PostObject, AppendObject, DeleteObject, DeleteMultipleObjects, CompleteMultipartUpload et CopyObject. CopyObject écrit l'objet de destination.
Incluez l'en-tête x-oss-object-acl dans les opérations d'écriture pour définir l'ACL de l'objet. Par exemple, incluez x-oss-object-acl dans une requête PutObject pour définir l'ACL de l'objet téléchargé.
Permissions
Par défaut, un compte Alibaba Cloud dispose de toutes les autorisations. Les utilisateurs RAM ou les rôles RAM sous un compte Alibaba Cloud ne disposent d'aucune autorisation par défaut. Le compte Alibaba Cloud ou l'administrateur du compte doit accorder les autorisations d'opération via des stratégies RAM ou une Bucket Policy.
|
API |
Action |
Description |
|
PutObjectACL |
|
Modifie l'ACL d'un objet dans un bucket. |
|
|
Modifie l'ACL d'une version spécifique d'un objet. |
Syntax
PUT /ObjectName?acl HTTP/1.1
x-oss-object-acl: Permission
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue
Request headers
|
Header |
Type |
Required |
Example |
Description |
|
x-oss-object-acl |
String |
Yes |
public-read |
L'ACL de l'objet. Valeurs valides :
Pour plus d'informations, consultez Object ACLs. |
Pour plus d'informations sur les en-têtes de requête communs dans une requête PutObjectACL, tels que Host et Date, consultez Common request headers.
Response headers
La réponse à une requête PutObjectACL contient uniquement des en-têtes de réponse communs. Pour plus d'informations, consultez Common response headers.
Examples
-
Modifier l'ACL d'un objet dans un bucket sans versioning
Exemple de requête
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=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218eExemple de réponse
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 -
Modifier l'ACL d'un objet dans un bucket avec versioning
Exemple de requête
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=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218eExemple de réponse
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
OSS SDKs
Les SDK OSS suivants prennent en charge PutObjectACL :
ossutil
Pour obtenir des informations sur la commande ossutil correspondant à l'opération PutObjectACL, consultez put-object-acl.
Error codes
|
Error code |
HTTP status code |
Description |
|
AccessDenied |
403 |
Vous n'êtes pas le propriétaire du bucket ou vous ne disposez pas des autorisations de lecture et d'écriture sur l'objet. |
|
InvalidArgument |
400 |
La valeur x-oss-object-acl spécifiée n'est pas valide. |
|
FileAlreadyExists |
409 |
L'objet cible est un répertoire dans un bucket avec namespace hiérarchique. |