Tous les produits
Search
Centre de documentation

Object Storage Service:Configurer les identifiants d'accès (SDK C# V1)

Dernière mise à jour :Sep 24, 2026

Pour envoyer des requêtes à Object Storage Service (OSS) à l'aide du kit de développement logiciel (SDK) C#, vous devez configurer des identifiants d'accès. Les services Alibaba Cloud utilisent ces identifiants pour vérifier votre identité et vos autorisations d'accès. Vous pouvez fournir ces identifiants de différentes manières, en fonction des exigences d'authentification et d'autorisation de votre scénario.

Notes

  • Pour plus d'informations sur les régions et les endpoints pris en charge par OSS, consultez la rubrique Régions et endpoints.

  • Pour créer une paire AccessKey pour un utilisateur Resource Access Management (RAM), consultez la rubrique Créer une paire AccessKey.

Choisir un fournisseur d'identifiants

OSS prend en charge plusieurs méthodes pour initialiser un fournisseur d'identifiants. Choisissez la méthode d'initialisation adaptée à vos besoins en matière d'authentification et d'autorisation.

Méthode d'initialisation du fournisseur d'identifiants

Scénarios

Nécessite une paire AccessKey ou un jeton Security Token Service (STS) préexistante

Type d'identifiant sous-jacent

Validité de l'identifiant

Méthode de rotation ou d'actualisation de l'identifiant

Utiliser la paire AccessKey d'un utilisateur RAM

Applications s'exécutant dans un environnement sécurisé et stable, non vulnérable aux attaques externes. Ces applications nécessitent un accès à long terme aux services Alibaba Cloud sans rotation fréquente des identifiants.

Oui

Paire AccessKey

Long terme

Rotation manuelle

Utiliser un identifiant d'accès temporaire STS

Applications s'exécutant dans un environnement non fiable. Cette méthode vous permet de contrôler la durée de validité et les autorisations d'accès.

Oui

Jeton STS

Temporaire

Actualisation manuelle

Utiliser un RAMRoleARN

Applications nécessitant un accès autorisé aux services Alibaba Cloud, comme l'accès inter-comptes.

Oui

Jeton STS

Temporaire

Actualisation automatique

Utiliser un ECSRAMRole

Applications s'exécutant sur des instances Elastic Compute Service (ECS), des instances ECI ou des nœuds de travail Container Service for Kubernetes.

Non

Jeton STS

Temporaire

Actualisation automatique

Utiliser un OIDCRoleARN

Applications non fiables s'exécutant sur des nœuds de travail Container Service for Kubernetes.

Non

Jeton STS

Temporaire

Actualisation automatique

Utiliser un CredentialsURI

Applications devant obtenir des identifiants d'accès depuis un système externe.

Non

Jeton STS

Temporaire

Actualisation automatique

Utiliser un identifiant d'accès personnalisé

Si aucune des méthodes précédentes ne répond à vos besoins, vous pouvez personnaliser la manière dont vous obtenez les identifiants.

Personnalisé

Personnalisé

Personnalisé

Personnalisé

Exemples de configuration courants

Utiliser la clé AK d'un utilisateur RAM

Si votre application est déployée dans un environnement sécurisé et stable, nécessite un accès à long terme à OSS et ne permet pas une rotation fréquente des identifiants, vous pouvez initialiser le fournisseur d'identifiants avec la paire AccessKey (AccessKey ID et AccessKey Secret) d'un compte Alibaba Cloud ou d'un utilisateur RAM. Toutefois, cette méthode exige que vous gériez manuellement une paire AccessKey, ce qui augmente les risques de sécurité et la complexité de maintenance. Pour obtenir une paire AccessKey, consultez la rubrique CreateAccessKey - Créer une paire AccessKey pour un compte Alibaba Cloud ou un utilisateur RAM.

Variables d'environnement

Avertissement

Un compte Alibaba Cloud dispose de toutes les autorisations sur l'ensemble des ressources. Si une paire AccessKey est divulguée, cela pose des risques de sécurité importants pour votre système. Nous vous déconseillons d'utiliser la paire AccessKey d'un compte Alibaba Cloud. Utilisez plutôt la paire AccessKey d'un utilisateur RAM disposant des autorisations minimales requises.

  1. Définissez les variables d'environnement à l'aide d'une paire AccessKey.

    Mac OS X, Linux, or Unix

    export ALIBABA_CLOUD_ACCESS_KEY_ID=<ALIBABA_CLOUD_ACCESS_KEY_ID>
    export ALIBABA_CLOUD_ACCESS_KEY_SECRET=<ALIBABA_CLOUD_ACCESS_KEY_SECRET>

    Windows

    set ALIBABA_CLOUD_ACCESS_KEY_ID=<ALIBABA_CLOUD_ACCESS_KEY_ID>
    set ALIBABA_CLOUD_ACCESS_KEY_SECRET=<ALIBABA_CLOUD_ACCESS_KEY_SECRET>
  2. Transmettez les informations d'identification à l'aide des variables d'environnement.

    using Aliyun.OSS;
    using Aliyun.OSS.Common;
    using Aliyun.OSS.Common.Authentication;
    
    // Obtain access credentials from environment variables. Before you run this code, make sure that the ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variables are set.
    var accessKeyId = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID");
    var accessKeySecret = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
    var credentialsProvider = new DefaultCredentialsProvider(new DefaultCredentials(accessKeyId, accessKeySecret, ""));   
    
    // Specify the endpoint of 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.
    const string endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
    
    // Specify the region where the bucket is located. For example, if the bucket is in the China (Hangzhou) region, set the region to cn-hangzhou.
    const string region = "cn-hangzhou";
    
    var conf = new ClientConfiguration();
    
    var client = new OssClient(endpoint, credentialsProvider, conf);
    client.SetRegion(region);                                                                                                                        

Identifiants statiques

L'exemple de code suivant montre comment coder en dur les identifiants d'accès et définir explicitement la paire AccessKey à utiliser.

Avertissement

N'intégrez pas les identifiants d'accès dans les applications en environnement de production. Cette méthode est réservée aux tests.

using Aliyun.OSS;
using Aliyun.OSS.Common;
using Aliyun.OSS.Common.Authentication;

// Replace the sample values with your actual AccessKey ID and AccessKey secret.
var accessKeyId = "LTAI5tQQx1DWEYK7********" ;
var accessKeySecret = "s5LkMqKmmKbt3zjs7MNJTj********" ;
var credentialsProvider = new DefaultCredentialsProvider(new DefaultCredentials(accessKeyId, accessKeySecret, ""));   

// Specify the endpoint of 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.
const string endpoint = "https://oss-cn-hangzhou.aliyuncs.com";

// Specify the region where the bucket is located. For example, if the bucket is in the China (Hangzhou) region, set the region to cn-hangzhou.
const string region = "cn-hangzhou";

var conf = new ClientConfiguration();

var client = new OssClient(endpoint, credentialsProvider, conf);
client.SetRegion(region);     

Utiliser un identifiant d'accès temporaire STS

Si votre application nécessite un accès temporaire à OSS, vous pouvez initialiser le fournisseur d'identifiants avec un identifiant d'identité temporaire (AccessKey ID, AccessKey Secret et jeton de sécurité) obtenu via Security Token Service (STS). Toutefois, cette méthode exige que vous gériez manuellement un jeton STS, ce qui augmente les risques de sécurité et la complexité de maintenance. De plus, pour accéder temporairement à OSS à plusieurs reprises, vous devez actualiser manuellement le jeton STS.

Important

Variables d'environnement

  1. Définissez les variables d'environnement à l'aide d'un identifiant d'identité temporaire.

    Mac OS X, Linux, or Unix

    export ALIBABA_CLOUD_ACCESS_KEY_ID=<ALIBABA_CLOUD_ACCESS_KEY_ID>
    export ALIBABA_CLOUD_ACCESS_KEY_SECRET=<ALIBABA_CLOUD_ACCESS_KEY_SECRET>
    export ALIBABA_CLOUD_SECURITY_TOKEN=<ALIBABA_CLOUD_SECURITY_TOKEN>

    Windows

    set OSS_ACCESS_KEY_ID=<ALIBABA_CLOUD_ACCESS_KEY_ID>
    set OSS_ACCESS_KEY_SECRET=<ALIBABA_CLOUD_ACCESS_KEY_SECRET>
    set OSS_SESSION_TOKEN=<ALIBABA_CLOUD_SECURITY_TOKEN>
  2. Transmettez les informations d'identification à l'aide des variables d'environnement.

    using Aliyun.OSS;
    using Aliyun.OSS.Common;
    using Aliyun.OSS.Common.Authentication;
    
    // Obtain access credentials from environment variables. Before you run this code, make sure that the ALIBABA_CLOUD_ACCESS_KEY_ID, ALIBABA_CLOUD_ACCESS_KEY_SECRET, and ALIBABA_CLOUD_SECURITY_TOKEN environment variables are set.
    var accessKeyId = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID");
    var accessKeySecret = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
    var token = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_SECURITY_TOKEN");
    
    var credentialsProvider = new DefaultCredentialsProvider(new DefaultCredentials(accessKeyId, accessKeySecret, token));
    
    // Specify the endpoint of 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.
    const string endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
    
    // Specify the region where the bucket is located. For example, if the bucket is in the China (Hangzhou) region, set the region to cn-hangzhou.
    const string region = "cn-hangzhou";
    
    var conf = new ClientConfiguration();
    
    var client = new OssClient(endpoint, credentialsProvider, conf);
    client.SetRegion(region);
    

Identifiants statiques

Vous pouvez coder en dur les identifiants dans votre application pour définir explicitement la paire AccessKey temporaire à utiliser.

using Aliyun.OSS;
using Aliyun.OSS.Common;
using Aliyun.OSS.Common.Authentication;

// Replace the sample values with your actual temporary AccessKey ID, AccessKey secret, and security token.
var accessKeyId = "STS.NTZdStF79CVRTQuWCfXTT****";
var accessKeySecret = "5rm8PfEiK8enp56zzAMX4RbZUraoKbWXvCf1xAuT****"
var token = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_SECURITY_TOKEN");

var credentialsProvider = new DefaultCredentialsProvider(new DefaultCredentials(accessKeyId, accessKeySecret, token));

// Specify the endpoint of 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.
const string endpoint = "https://oss-cn-hangzhou.aliyuncs.com";

// Specify the region where the bucket is located. For example, if the bucket is in the China (Hangzhou) region, set the region to cn-hangzhou.
const string region = "cn-hangzhou";

var conf = new ClientConfiguration();

var client = new OssClient(endpoint, credentialsProvider, conf);
client.SetRegion(region);

Autres exemples de configuration spécifiques aux scénarios

Utiliser RAMRoleARN

Si votre application nécessite un accès autorisé à OSS, tel qu'un accès inter-comptes, vous pouvez initialiser le fournisseur d'identifiants à l'aide d'un RAMRoleARN. Cette méthode utilise un jeton STS comme identifiant sous-jacent. En spécifiant le nom de ressource Alibaba Cloud (ARN) d'un rôle RAM, l'outil d'identifiants récupère un jeton STS auprès du service STS et actualise automatiquement le jeton avant son expiration. Vous pouvez également attribuer une valeur à policy pour restreindre le rôle RAM à un ensemble d'autorisations plus limité.

Important
  • Un compte Alibaba Cloud dispose de toutes les autorisations sur l'ensemble des ressources. Si une paire AccessKey est divulguée, cela pose des risques de sécurité importants pour votre système. Nous vous déconseillons d'utiliser la paire AccessKey d'un compte Alibaba Cloud. Utilisez plutôt la paire AccessKey d'un utilisateur RAM disposant des autorisations minimales requises.

  • Pour plus d'informations sur la création d'une paire AccessKey pour un utilisateur RAM, consultez la rubrique Créer une paire AccessKey. L'AccessKey ID et l'AccessKey Secret d'un utilisateur RAM ne sont affichés qu'au moment de leur création. Vous devez les enregistrer immédiatement. Si vous oubliez l'AccessKey Secret, vous devez créer une nouvelle paire AccessKey pour effectuer une rotation.

  • Pour obtenir un RAMRoleARN, consultez la rubrique CreateRole - Créer un rôle.

  1. Installez la bibliothèque d'identifiants Alibaba Cloud. Pour plus d'informations, consultez la rubrique Gérer les identifiants d'accès.

  2. Configurez les identifiants d'accès.

    using Aliyun.OSS;
    using Aliyun.OSS.Common;
    using Aliyun.OSS.Common.Authentication;
    
    class CredentialsProviderWrapper : ICredentialsProvider
    {
        private Aliyun.Credentials.Client client;
        public CredentialsProviderWrapper(Aliyun.Credentials.Client client)
        {
            this.client = client;
        }
    
        public ICredentials GetCredentials()
        {
            var accessKeyId = client.GetAccessKeyId();
            var accessKeySecret = client.GetAccessKeySecret();
            var token = client.GetSecurityToken();
            return new DefaultCredentials(accessKeyId, accessKeySecret, token);
        }
    
        public void SetCredentials(ICredentials creds)
        {
        }
    };
    
    var config = new Aliyun.Credentials.Models.Config()
    {
        Type = "ram_role_arn",
        AccessKeyId = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID"),
        AccessKeySecret = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
        // By default, the following operations use parameter values that are directly entered. You can also add environment variables and use Environment.GetEnvironmentVariable("<variable_name>") to get the corresponding parameters.
        // The ARN of the RAM role to assume. Example: acs:ram::123456789012****:role/adminrole
        RoleArn = "<RoleArn>", // The default environment variable for RoleArn is ALIBABA_CLOUD_ROLE_ARN.
        // The role session name.
        RoleSessionName = "<RoleSessionName>", // The default environment variable for RoleSessionName is ALIBABA_CLOUD_ROLE_SESSION_NAME.
    };
    var credentialsClient = new Aliyun.Credentials.Client(config);
    
    var credentialsProvider = new CredentialsProviderWrapper(credentialsClient);
    
    // Specify the endpoint of 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.
    const string endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
    
    // Specify the region where the bucket is located. For example, if the bucket is in the China (Hangzhou) region, set the region to cn-hangzhou.
    const string region = "cn-hangzhou";
    
    var conf = new ClientConfiguration();
    
    var client = new OssClient(endpoint, credentialsProvider, conf);
    client.SetRegion(region);
    

Utiliser un rôle RAM ECS

Si votre application s'exécute sur une instance Elastic Compute Service (ECS), une instance Elastic Container Instance (ECI) ou un nœud de travail Container Service for Kubernetes, nous vous recommandons d'utiliser un ECSRAMRole pour initialiser le fournisseur d'identifiants. Cette méthode utilise un jeton STS comme identifiant sous-jacent. Un ECSRAMRole vous permet d'associer un rôle à une instance ECS, une instance ECI ou un nœud de travail Container Service for Kubernetes. Cela permet l'actualisation automatique du jeton STS au sein de l'instance. Cette méthode ne nécessite pas de fournir de paire AccessKey ni de jeton STS, ce qui élimine les risques liés à leur gestion manuelle. Pour obtenir un ECSRAMRole, consultez la rubrique CreateRole - Créer un rôle.

  1. Installez la bibliothèque d'identifiants Alibaba Cloud. Pour plus d'informations, consultez la rubrique Gérer les identifiants d'accès.

  2. Configurez un ECSRAMRole comme identifiant d'accès.

using Aliyun.OSS;
using Aliyun.OSS.Common;
using Aliyun.OSS.Common.Authentication;

class CredentialsProviderWrapper : ICredentialsProvider
{
    private Aliyun.Credentials.Client client;
    public CredentialsProviderWrapper(Aliyun.Credentials.Client client)
    {
        this.client = client;
    }

    public ICredentials GetCredentials()
    {
        var accessKeyId = client.GetAccessKeyId();
        var accessKeySecret = client.GetAccessKeySecret();
        var token = client.GetSecurityToken();
        return new DefaultCredentials(accessKeyId, accessKeySecret, token);
    }

    public void SetCredentials(ICredentials creds)
    {
    }
};

var config = new Aliyun.Credentials.Models.Config()
{
    Type = "ecs_ram_role",
    // Optional. The name of the ECS RAM role. If you do not specify this parameter, the role name is automatically obtained. We recommend that you specify this parameter to reduce the number of requests.
    RoleName = "<RoleName>"     
};
var credentialsClient = new Aliyun.Credentials.Client(config);

var credentialsProvider = new CredentialsProviderWrapper(credentialsClient);

// Specify the endpoint of 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.
const string endpoint = "https://oss-cn-hangzhou.aliyuncs.com";

// Specify the region where the bucket is located. For example, if the bucket is in the China (Hangzhou) region, set the region to cn-hangzhou.
const string region = "cn-hangzhou";

var conf = new ClientConfiguration();

var client = new OssClient(endpoint, credentialsProvider, conf);
client.SetRegion(region);

Utiliser OIDCRoleARN

Après avoir configuré un rôle RAM pour les nœuds de travail dans Container Service for Kubernetes, les applications exécutées dans les pods de ces nœuds peuvent récupérer le jeton STS du rôle associé via le service de métadonnées global, à l'instar des applications déployées sur ECS. Toutefois, si vous déployez des applications non fiables sur le cluster de conteneurs, telles que des applications soumises par vos clients dont le code ne vous est pas visible, vous souhaiterez peut-être éviter qu'elles ne récupèrent le jeton STS du rôle RAM d'instance associé aux nœuds de travail via le service de métadonnées global. Pour prévenir les risques de sécurité pour vos ressources cloud tout en permettant à ces applications non fiables de récupérer en toute sécurité les jetons STS requis et de parvenir à une minimisation des autorisations au niveau de l'application, utilisez la fonctionnalité RAM Roles for Service Accounts (RRSA). Cette méthode utilise un jeton STS comme identifiant sous-jacent. Un cluster de conteneurs Alibaba Cloud crée et monte le fichier de jeton OpenID Connect (OIDC) du compte de service correspondant pour différents pods d'application et injecte les informations de configuration pertinentes dans les variables d'environnement. L'outil d'identifiants récupère les informations de configuration depuis les variables d'environnement et appelle l'opération AssumeRoleWithOIDC de STS pour échanger le jeton OIDC contre un jeton STS du rôle lié. Cette méthode ne nécessite pas de fournir de paire AccessKey ni de jeton STS, ce qui élimine les risques liés à leur gestion manuelle. Pour plus d'informations, consultez la rubrique Isoler les autorisations des pods en fonction de RRSA.

Les variables d'environnement suivantes sont injectées :

ALIBABA_CLOUD_ROLE_ARN : l'ARN du rôle RAM.

ALIBABA_CLOUD_OIDC_PROVIDER_ARN : l'ARN du fournisseur OIDC.

ALIBABA_CLOUD_OIDC_TOKEN_FILE : le chemin d'accès au fichier de jeton OIDC.

Configurez un OIDCRoleArn comme identifiant d'accès.

using Aliyun.OSS;
using Aliyun.OSS.Common;
using Aliyun.OSS.Common.Authentication;

class CredentialsProviderWrapper : ICredentialsProvider
{
    private Aliyun.Credentials.Client client;
    public CredentialsProviderWrapper(Aliyun.Credentials.Client client)
    {
        this.client = client;
    }

    public ICredentials GetCredentials()
    {
        var accessKeyId = client.GetAccessKeyId();
        var accessKeySecret = client.GetAccessKeySecret();
        var token = client.GetSecurityToken();
        return new DefaultCredentials(accessKeyId, accessKeySecret, token);
    }

    public void SetCredentials(ICredentials creds)
    {}
};

var config = new Aliyun.Credentials.Models.Config()
{
    Type = "oidc_role_arn",
    // The ARN of the RAM role. You can set RoleArn using the ALIBABA_CLOUD_ROLE_ARN environment variable.
    RoleArn = "<RoleArn>",
    // The ARN of the OIDC provider. You can set OidcProviderArn using the ALIBABA_CLOUD_OIDC_PROVIDER_ARN environment variable.
    OIDCProviderArn = "<OidcProviderArn>",
    // The path to the OIDC token file. You can set OidcTokenFilePath using the ALIBABA_CLOUD_OIDC_TOKEN_FILE environment variable.
    OIDCTokenFilePath = "<OidcTokenFilePath>",
    // The role session name. You can set RoleSessionName using the ALIBABA_CLOUD_ROLE_SESSION_NAME environment variable.
    RoleSessionName = "<RoleSessionName>",
    // Optional. A more restrictive access policy. Example: {"Statement": [{"Action": ["*"],"Effect": "Allow","Resource": ["*"]}],"Version":"1"}
    Policy = "<Policy>",
    RoleSessionExpiration = 3600  
};
var credentialsClient = new Aliyun.Credentials.Client(config);
var credentialsProvider = new CredentialsProviderWrapper(credentialsClient);
// Specify the endpoint of 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.
const string endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// Specify the region where the bucket is located. For example, if the bucket is in the China (Hangzhou) region, set the region to cn-hangzhou.
const string region = "cn-hangzhou";
var conf = new ClientConfiguration();
var client = new OssClient(endpoint, credentialsProvider, conf);
client.SetRegion(region);

Utiliser CredentialsURI

Si votre application doit récupérer les identifiants Alibaba Cloud depuis un système externe afin de bénéficier d'une gestion flexible des identifiants et d'un accès sans clé, vous pouvez initialiser le fournisseur d'identifiants à l'aide d'un CredentialsURI. Cette méthode utilise un jeton STS comme identifiant sous-jacent. L'outil d'identifiants récupère un jeton STS depuis l'URI que vous fournissez pour finaliser l'initialisation du client d'identifiants. Cette méthode ne nécessite pas de fournir de paire AccessKey ni de jeton STS, ce qui élimine les risques liés à leur gestion manuelle. Le service backend qui fournit la réponse CredentialsURI doit implémenter une logique d'actualisation automatique du jeton STS afin de garantir que votre application puisse toujours récupérer des identifiants valides.

using Aliyun.OSS;
using Aliyun.OSS.Common;
using Aliyun.OSS.Common.Authentication;

class CredentialsProviderWrapper : ICredentialsProvider
{
    private Aliyun.Credentials.Client client;
    public CredentialsProviderWrapper(Aliyun.Credentials.Client client)
    {
        this.client = client;
    }

    public ICredentials GetCredentials()
    {
        var accessKeyId = client.GetAccessKeyId();
        var accessKeySecret = client.GetAccessKeySecret();
        var token = client.GetSecurityToken();
        return new DefaultCredentials(accessKeyId, accessKeySecret, token);
    }

    public void SetCredentials(ICredentials creds)
    {}
};

var config = new Aliyun.Credentials.Models.Config()
{
    // The credential type.
    Type = "credentials_uri",
    // The URI from which to obtain credentials. The format is http://local_or_remote_uri/. You can set CredentialsURI using the ALIBABA_CLOUD_CREDENTIALS_URI environment variable.
    CredentialsURI = "<CredentialsURI>" 
};
var credentialsClient = new Aliyun.Credentials.Client(config);
var credentialsProvider = new CredentialsProviderWrapper(credentialsClient);
// Specify the endpoint of 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.
const string endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// Specify the region where the bucket is located. For example, if the bucket is in the China (Hangzhou) region, set the region to cn-hangzhou.
const string region = "cn-hangzhou";
var conf = new ClientConfiguration();
var client = new OssClient(endpoint, credentialsProvider, conf);
client.SetRegion(region);

Utiliser un identifiant d'accès personnalisé

Si aucune des méthodes de configuration précédentes ne répond à vos besoins, vous pouvez également implémenter l'interface Credential Providers pour personnaliser la manière dont les identifiants sont fournis.

using Aliyun.OSS;
using Aliyun.OSS.Common;
using Aliyun.OSS.Common.Authentication;

class CustomCredentialsProvider : ICredentialsProvider
{
    public CustomCredentialsProvider()
    {
    }

    public ICredentials GetCredentials()
    {
        // TODO
        // Custom method to obtain access credentials.

        string accessKeyId;
        string accessKeySecret;
        //string token;

        // Return long-term credentials: access_key_id, access_key_secret.
        return new DefaultCredentials(accessKeyId, accessKeySecret, "");

        // Return temporary credentials: access_key_id, access_key_secret, token.
        // For temporary credentials, you must refresh the credentials based on their expiration time.
        // return new DefaultCredentials(accessKeyId, accessKeySecret, token);
    }

    public void SetCredentials(ICredentials creds)
    {
    }
};

var credentialsProvider = new CustomCredentialsProvider();

// Specify the endpoint of 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.
const string endpoint = "https://oss-cn-hangzhou.aliyuncs.com";

// Specify the region where the bucket is located. For example, if the bucket is in the China (Hangzhou) region, set the region to cn-hangzhou.
const string region = "cn-hangzhou";

var conf = new ClientConfiguration();

var client = new OssClient(endpoint, credentialsProvider, conf);
client.SetRegion(region);

Comment afficher la paire AccessKey d'un utilisateur RAM ? Puis-je consulter un ancien AccessKey Secret ?

  1. Pour afficher la paire AccessKey d'un utilisateur RAM, consultez la rubrique Afficher les informations AccessKey d'un utilisateur RAM.

  2. L'AccessKey Secret d'un utilisateur RAM n'est affiché qu'au moment de sa création et ne peut pas être récupéré ultérieurement. Si vous avez oublié l'AccessKey Secret, vous ne pouvez pas le récupérer. Accédez à la console RAM, sélectionnez l'utilisateur concerné et créez une nouvelle paire AccessKey pour effectuer une rotation. Pour plus d'informations, consultez la rubrique Créer une paire AccessKey.

Comment résoudre une erreur AccessDenied survenant lors du téléchargement d'un fichier à l'aide de la paire AccessKey d'un utilisateur RAM ?

Une erreur AccessDenied lors du téléchargement de fichiers survient généralement parce que les informations AccessKey utilisées sont incorrectes ou que l'utilisateur RAM n'a pas reçu les autorisations nécessaires pour télécharger des fichiers. Vous pouvez vérifier les éléments suivants :

  1. Vérifiez que la paire AccessKey de l'utilisateur RAM est correcte. Pour plus d'informations, consultez la rubrique Afficher les informations AccessKey d'un utilisateur RAM.

  2. L'AccessKey Secret d'un utilisateur RAM n'est affiché qu'au moment de sa création et ne peut pas être récupéré ultérieurement. Si vous avez oublié l'AccessKey Secret, vous ne pouvez pas le récupérer. Accédez à la console RAM, sélectionnez l'utilisateur concerné et créez une nouvelle paire AccessKey pour effectuer une rotation. Pour plus d'informations, consultez la rubrique Créer une paire AccessKey.

  3. Connectez-vous à la console RAM, sélectionnez l'utilisateur concerné et accordez-lui les autorisations nécessaires pour télécharger des fichiers vers OSS.

Comment résoudre un échec de connexion survenant lors de l'accès à OSS via un endpoint public ?

Un échec de connexion à un endpoint public survient généralement parce que l'adresse de l'endpoint est incorrecte ou que la région du bucket ne correspond pas à l'endpoint demandé. Vous pouvez vérifier les éléments suivants :

  1. Vérifiez la région du bucket. Connectez-vous à la console Alibaba Cloud, localisez votre bucket et confirmez sa région.

  2. Utilisez l'endpoint correct. Vous devez utiliser l'endpoint public correspondant en fonction de la région du bucket. Par exemple, si le bucket se trouve dans la région Chine (Hangzhou), utilisez oss-cn-hangzhou.aliyuncs.com. Pour plus d'informations sur les endpoints de chaque région, consultez la rubrique Régions et endpoints.

  3. Vérifiez la connectivité réseau. Assurez-vous que votre environnement réseau peut accéder à Internet afin d'éviter les échecs de connexion dus à des problèmes réseau.

En cas d'erreur, comment identifier le type d'erreur spécifique ?

Pour plus d'informations sur les types d'erreurs, consultez les Codes d'erreur EC dans la documentation OSS. Par exemple, pour les erreurs courantes liées à l'authentification, consultez la rubrique 02-AUTH.