Vous pouvez définir la liste de contrôle d'accès (ACL) d'un objet sur l'une des valeurs suivantes : Hérité du bucket, Privé, Lecture publique et Lecture/écriture publiques. Cette rubrique explique comment gérer l'ACL d'un objet.
Notes d'utilisation
Avant d'exécuter l'exemple de code de cette rubrique, créez une instance OSSClient en utilisant un nom de domaine personnalisé ou le Security Token Service (STS). Pour plus d'informations, consultez Initialisation.
ACL des objets
|
Autorisations d'accès |
Description |
Valeur d'ACL |
|
Hérité du bucket |
Les fichiers héritent des autorisations d'accès du bucket. |
default |
|
Privé |
Seul le propriétaire de l'objet et les utilisateurs autorisés disposent des autorisations de lecture et d'écriture sur l'objet. |
private |
|
Lecture publique |
Seul le propriétaire de l'objet et les utilisateurs autorisés disposent des autorisations de lecture et d'écriture sur l'objet. Tous les utilisateurs disposent des autorisations de lecture sur l'objet. Soyez prudent lorsque vous définissez l'ACL de l'objet sur cette valeur. |
public-read |
|
Lecture/écriture publiques |
Tous les utilisateurs disposent des autorisations de lecture et d'écriture sur l'objet. Soyez prudent lorsque vous définissez l'ACL de l'objet sur cette valeur. |
public-read-write |
L'ACL d'un objet est prioritaire sur celle du bucket dans lequel il est stocké. Par exemple, si l'ACL d'un bucket est privée et que celle d'un objet contenu dans ce bucket est définie sur « lecture/écriture publiques », tous les utilisateurs obtiennent les autorisations de lecture et d'écriture sur l'objet. Si l'ACL d'un objet n'est pas configurée, elle est identique à celle du bucket dans lequel l'objet est stocké.
Configurer l'ACL d'un objet
L'exemple de code suivant montre comment définir l'ACL de l'objet exampleobject.txt dans un bucket nommé examplebucket sur private :
OSSPutObjectACLRequest *request = [OSSPutObjectACLRequest new];
// Specify the name of the bucket. Example: examplebucket.
request.bucketName = @"examplebucket";
// Specify the full path of the object. Do not include the bucket name in the full path. Example: exampleobject.txt.
request.objectKey = @"exampleobject.txt";
/**
* Configure the object ACL.
* public-read
* private
* public-read-write
* default
*/
request.acl = @"private";
OSSTask * putObjectACLTask = [client putObjectACL:request];
[putObjectACLTask continueWithBlock:^id(OSSTask *task) {
if (!task.error) {
NSLog(@"put object ACL success!");
} else {
NSLog(@"put object ACL failed, error: %@", task.error);
}
return nil;
}];
// Implement synchronous blocking to wait for the task to complete.
// [putObjectACLTask waitUntilFinished];
Obtenir les autorisations d'accès aux fichiers
L'exemple de code suivant montre comment interroger l'ACL d'un objet nommé exampleobject.txt dans un bucket nommé examplebucket :
OSSGetObjectACLRequest *request = [OSSGetObjectACLRequest new];
// Specify the name of the bucket. Example: examplebucket.
request.bucketName = @"examplebucket";
// Specify the full path of the object. Do not include the bucket name in the full path. Example: exampleobject.txt.
request.objectName = @"exampleobject.txt";
OSSTask * getObjectACLTask = [client getObjectACL:request];
[getObjectACLTask continueWithBlock:^id(OSSTask *task) {
if (!task.error) {
OSSGetObjectACLResult *result = task.result;
NSLog(@"objectACL: %@", result.grant);
} else {
NSLog(@"get object ACL failed, error: %@", task.error);
}
return nil;
}];
// Implement synchronous blocking to wait for the task to complete.
// [putObjectACLTask waitUntilFinished];
Références
Pour plus d'informations sur l'opération API permettant de configurer l'ACL d'un objet, consultez PutObjectACL.
Pour plus d'informations sur l'opération API permettant d'interroger l'ACL d'un objet, consultez GetObjectACL.
Pour plus d'informations sur l'initialisation d'une instance OSSClient, consultez Initialisation.