Cette rubrique explique comment gérer les autorisations d'accès aux fichiers.
Informations générales
Les fichiers prennent en charge les quatre types de listes de contrôle d'accès (ACL) suivants :
|
Autorisation d'accès |
Description |
Valeur ACL |
|
Héritée du bucket |
Le fichier hérite de l'ACL du bucket. |
oss2.OBJECT_ACL_DEFAULT |
|
Privé |
Seul le propriétaire du fichier et les utilisateurs autorisés disposent des autorisations de lecture et d'écriture sur le fichier. Les autres utilisateurs ne peuvent pas accéder au fichier. |
oss2.OBJECT_ACL_PRIVATE |
|
Lecture publique |
Le propriétaire du fichier et les utilisateurs autorisés disposent des autorisations de lecture et d'écriture sur le fichier. Les autres utilisateurs disposent uniquement des autorisations de lecture. Utilisez cette autorisation avec précaution. |
oss2.OBJECT_ACL_PUBLIC_READ |
|
Lecture-écriture publique |
Tous les utilisateurs disposent des autorisations de lecture et d'écriture sur le fichier. Utilisez cette autorisation avec précaution. |
oss2.OBJECT_ACL_PUBLIC_READ_WRITE |
L'ACL d'un fichier est prioritaire sur l'ACL du bucket. Par exemple, si un bucket est privé mais qu'un fichier contenu dans ce bucket est configuré en lecture-écriture publique, tous les utilisateurs disposent des autorisations de lecture et d'écriture sur ce fichier. Si un fichier ne possède pas d'ACL propre, il hérite de celle du bucket.
Notes
Cette rubrique utilise le point de terminaison public de la région Chine (Hangzhou). Pour accéder à OSS depuis d'autres services Alibaba Cloud situés dans la même région, utilisez un point de terminaison interne. Pour plus d'informations sur les régions et les points de terminaison OSS, consultez Régions et points de terminaison.
Cette rubrique récupère les identifiants d'accès à partir des variables d'environnement. Pour plus d'informations sur la configuration des identifiants d'accès, consultez Configurer les identifiants d'accès à l'aide du SDK OSS pour Python 1.0.
Cette rubrique illustre la création d'une instance OSSClient avec un endpoint OSS. Pour d'autres configurations, telles que l'utilisation d'un domaine personnalisé ou l'authentification via des identifiants du Security Token Service (STS), consultez Initialisation.
Pour configurer l'ACL d'un objet, vous devez disposer de l'autorisation
oss:PutObjectAcl. Pour interroger les ACL des objets, vous devez disposer de l'autorisationoss:GetObjectAcl. Pour plus d'informations, consultez Accorder une politique personnalisée.
Définir les autorisations d'accès aux fichiers
L'exemple de code suivant montre comment configurer l'ACL d'un objet :
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# Obtain access credentials from environment variables. Before you run the sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are configured.
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# Specify the Endpoint for the region where the bucket is located. For example, if the bucket is in the China (Hangzhou) region, set the Endpoint to https://oss-cn-hangzhou.aliyuncs.com.
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# Specify the region where the bucket is located, such as cn-hangzhou. Note that this parameter is required for V4 signatures.
region = "cn-hangzhou"
# Set yourBucketName to the name of the bucket.
bucket = oss2.Bucket(auth, endpoint, "yourBucketName", region=region)
# Set yourObjectName to the full path of the object. The full path cannot contain the bucket name.
bucket.put_object_acl('yourObjectName', oss2.OBJECT_ACL_PUBLIC_READ)
Obtenir les autorisations d'accès aux fichiers
L'exemple de code suivant montre comment interroger l'ACL d'un objet :
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# Obtain access credentials from environment variables. Before you run the sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are configured.
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# Specify the Endpoint for the region where the bucket is located. For example, if the bucket is in the China (Hangzhou) region, set the Endpoint to https://oss-cn-hangzhou.aliyuncs.com.
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# Specify the region where the bucket is located, such as cn-hangzhou. Note that this parameter is required for V4 signatures.
region = "cn-hangzhou"
# Set yourBucketName to the name of the bucket.
bucket = oss2.Bucket(auth, endpoint, "yourBucketName", region=region)
# Set yourObjectName to the full path of the object. The full path cannot contain the bucket name.
print(bucket.get_object_acl('yourObjectName').acl)
Références
Pour plus d'informations sur l'opération API permettant de définir les autorisations d'accès aux fichiers, consultez PutObjectACL.
Pour plus d'informations sur l'opération API permettant de récupérer les autorisations d'accès aux fichiers, consultez GetObjectACL.