Tous les produits
Search
Centre de documentation

Object Storage Service:Gérer les autorisations d'accès aux fichiers à l'aide du SDK OSS pour Python 2.0

Dernière mise à jour :Aug 18, 2026

Cette rubrique explique comment gérer les listes de contrôle d'accès (ACL) des objets à l'aide du SDK OSS pour Python 2.0.

Remarques sur l'utilisation

  • L'exemple de code de cette rubrique utilise l'ID de région cn-hangzhou de la région Chine (Hangzhou). Par défaut, un endpoint public permet d'accéder aux ressources d'un bucket. Pour accéder aux ressources du bucket depuis d'autres services Alibaba Cloud situés dans la même région, utilisez un endpoint interne. Pour plus d'informations sur les régions et les endpoints pris en charge par OSS, consultez la section Régions et endpoints.

  • Pour définir les autorisations d'accès d'un objet, vous devez disposer de l'autorisation oss:PutObjectAcl. Pour consulter les autorisations d'accès d'un objet, vous devez disposer de l'autorisation oss:GetObjectAcl. Pour plus d'informations, consultez la section Accorder des stratégies personnalisées à un utilisateur RAM.

Méthode

Configurer l'ACL d'un objet

put_object_acl(request: PutObjectAclRequest, **kwargs) → PutObjectAclResult

Interroger l'ACL d'un objet

get_object_acl(request: GetObjectAclRequest, **kwargs) → GetObjectAclResult

Paramètres de requête

Nom du paramètre

Type

Description

request

PutObjectAclRequest

Les paramètres de la requête. Pour plus d'informations, consultez PutObjectAclRequest

GetObjectAclRequest

Les paramètres de la requête. Pour plus d'informations, consultez GetObjectAclRequest

Paramètres de réponse

Type

Description

PutObjectAclResult

La valeur de retour. Pour plus d'informations, consultez PutObjectAclResult

GetObjectAclResult

La valeur de retour. Pour plus d'informations, consultez GetObjectAclResult

Pour la définition complète de la méthode de définition de l'ACL d'un fichier, consultez put_object_acl.

Pour la définition complète de la méthode de récupération de l'ACL d'un fichier, consultez get_object_acl.

Types d'ACL

Le tableau suivant décrit les ACL configurables pour un objet :

ACL

Description

Valeur de l'ACL

Hériter du bucket

Les fichiers héritent des autorisations d'accès du bucket.

default

Privé

Seuls le propriétaire du fichier et les utilisateurs autorisés peuvent lire et écrire le fichier. Les autres utilisateurs ne peuvent pas y accéder.

private

Lecture publique

Seuls le propriétaire du fichier et les utilisateurs autorisés peuvent lire et écrire le fichier. Les autres utilisateurs peuvent uniquement lire le fichier. Utilisez cette autorisation avec prudence.

public-read

Lecture-écriture publique

Tous les utilisateurs peuvent lire et écrire le fichier. Utilisez cette autorisation avec prudence.

public-read-write

L'ACL d'un objet est prioritaire sur celle du bucket qui le contient. Par exemple, si l'ACL d'un bucket est définie sur « privé » et que l'ACL d'un objet dans ce bucket est définie sur « lecture-écriture publique », tous les utilisateurs disposent des 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é.

Exemple de code

L'exemple de code suivant permet de configurer et de récupérer l'ACL d'un objet.

import argparse
import alibabacloud_oss_v2 as oss

# Create a command-line argument parser.
parser = argparse.ArgumentParser(description="put object acl sample")
# Add required parameters: region, bucket name, object key, and access control list (ACL).
parser.add_argument('--region', help='The region in which the bucket is located.', required=True)
parser.add_argument('--bucket', help='The name of the bucket.', required=True)
parser.add_argument('--endpoint', help='The domain names that other services can use to access OSS')
parser.add_argument('--key', help='The name of the object.', required=True)
parser.add_argument('--acl', help='Specify the access permission ACL for the object.', required=True)

def main():
    # Parse command-line arguments.
    args = parser.parse_args()

    # Load access credential information from environment variables.
    credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()

    # Use the default configurations of the SDK.
    cfg = oss.config.load_default()
    # Set the credential provider.
    cfg.credentials_provider = credentials_provider
    # Set the region provided by the user.
    cfg.region = args.region
    # If an endpoint is provided, set the endpoint in the configuration.
    if args.endpoint is not None:
        cfg.endpoint = args.endpoint

    # Create an OSS client.
    client = oss.Client(cfg)

    # Set the ACL of the object.
    result = client.put_object_acl(oss.PutObjectAclRequest(
        bucket=args.bucket,  # The bucket name.
        key=args.key,  # The object key.
        acl=args.acl,  # The new ACL value.
    ))

    # Print the output information after setting the ACL.
    print(f'status code: {result.status_code},'
          f' request id: {result.request_id},'
          f' version id: {result.version_id},'
    )

    # Obtain and print the current ACL settings of the object.
    result = client.get_object_acl(oss.GetObjectAclRequest(
        bucket=args.bucket,
        key=args.key,
    ))

    print(f'status code: {result.status_code},'
          f' request id: {result.request_id},'
          f' acl: {result.acl},'
          f' version id: {result.version_id},'
    )

# Call the main function when this script is run directly.
if __name__ == "__main__":
    main()

Références

  • Pour l'exemple de code complet permettant de définir l'ACL d'un fichier, consultez put_object_acl.py.

  • Pour l'exemple de code complet permettant de récupérer l'ACL d'un fichier, consultez get_object_acl.py.