Tous les produits
Search
Centre de documentation

Object Storage Service:Initialisation (SDK Browser.js)

Dernière mise à jour :Aug 18, 2026

Le client du kit de développement logiciel (SDK) OSS Browser.js gère les ressources Object Storage Service (OSS), telles que les buckets et les fichiers. Pour envoyer une requête OSS, initialisez une instance de client et modifiez si nécessaire les configurations par défaut.

Prérequis

Installez le SDK Browser.js. Pour plus d'informations, consultez la rubrique Installation (SDK Browser.js).

Créer un nouveau client

Signature V4 (Recommandé)

Utilisez l'algorithme de signature V4, qui offre une sécurité accrue. Lors de l'initialisation d'un client avec une signature V4, déclarez authorizationV4. Les signatures V4 sont prises en charge à partir de la version 6.20.0 du SDK OSS Browser.js.

L'exemple suivant montre comment utiliser une signature V4 lors de l'initialisation avec un nom de domaine OSS. Pour d'autres scénarios, tels que l'initialisation avec un nom de domaine personnalisé, adaptez l'exemple selon vos besoins.

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>Document</title>
  </head>
  <body>
    <!--Import the SDK file.-->
    <script
      type="text/javascript"
      src="https://gosspublic.alicdn.com/aliyun-oss-sdk-6.20.0.min.js"
    ></script>
    <script type="text/javascript">
      const client = new OSS({
        // Set yourRegion to the region where the bucket is located. For example, if the bucket is in the China (Hangzhou) region, set yourRegion to oss-cn-hangzhou.
        region: 'yourRegion',
	authorizationV4: true,
        // The temporary AccessKey pair (AccessKey ID and AccessKey secret) obtained from Security Token Service (STS).
        accessKeyId: 'yourAccessKeyId',
        accessKeySecret: 'yourAccessKeySecret',
        // The security token obtained from STS.
        stsToken: 'yourSecurityToken',
        // Specify the bucket name. For example, examplebucket.
        bucket: "examplebucket",
      });
    </script>
  </body>
</html>

Signature V1 (Non recommandé)

Important

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>Document</title>
  </head>
  <body>
    <!--Import the SDK file.-->
    <script
      type="text/javascript"
      src="https://gosspublic.alicdn.com/aliyun-oss-sdk-6.18.0.min.js"
    ></script>
    <script type="text/javascript">
      const client = new OSS({
        // Set yourRegion to the region where the bucket is located. For example, if the bucket is in the China (Hangzhou) region, set yourRegion to oss-cn-hangzhou.
        region: 'yourRegion',
        // The temporary AccessKey pair (AccessKey ID and AccessKey secret) obtained from STS.
        accessKeyId: 'yourAccessKeyId',
        accessKeySecret: 'yourAccessKeySecret',
        // The security token obtained from STS.
        stsToken: 'yourSecurityToken',
        // Specify the bucket name. For example, examplebucket.
        bucket: "examplebucket",
      });
    </script>
  </body>
</html>

Configurer le client

Ajoutez des éléments de configuration lors de l'initialisation du client selon vos besoins. Par exemple, utilisez timeout pour spécifier le délai d'expiration de la requête et stsToken pour indiquer un identifiant d'accès temporaire. Pour plus d'informations sur les éléments de configuration pris en charge par Browser.js et des exemples, consultez les sections suivantes.

Description des paramètres options

  • accessKeyId {String} : AccessKey ID obtenu depuis la console Alibaba Cloud Management Console.

  • accessKeySecret {String} : AccessKey Secret obtenu depuis la console Alibaba Cloud Management Console.

  • [stsToken] {String} : jeton Security Token Service utilisé pour l'autorisation temporaire.

  • [refreshSTSToken] {Function} : fonction qui définit automatiquement les valeurs stsToken, accessKeyId et accessKeySecret lorsque le jeton STS expire. Cette fonction doit renvoyer un objet contenant stsToken, accessKeyId et accessKeySecret.

  • [refreshSTSTokenInterval] {number} : intervalle d'actualisation du jeton Security Token Service, en millisecondes. Cette valeur doit être inférieure à la période d'expiration du jeton STS. La valeur par défaut est de 300 000 millisecondes (5 minutes).

  • [bucket] {String} : bucket par défaut auquel vous souhaitez accéder. Si le bucket n'existe pas, appelez l'opération putBucket() pour le créer.

  • [endpoint] {String} : nom de domaine spécifique à la région OSS. Ce paramètre a une priorité plus élevée que le paramètre region. Définissez ce paramètre sur un endpoint public, un endpoint interne de même région ou un nom de domaine accéléré selon vos besoins. Pour plus d'informations, consultez la liste des endpoints.

  • [region] {String} : région où se trouve le bucket. La valeur par défaut est oss-cn-hangzhou.

  • [internal] {Boolean} : indique si l'accès à OSS s'effectue via le réseau interne Alibaba Cloud. La valeur par défaut est false. Si votre serveur s'exécute également sur Alibaba Cloud, définissez ce paramètre sur true pour réduire les coûts de transfert de données.

  • [secure] {Boolean} : indique si le client OSS utilise le protocole HTTPS (secure: true) ou HTTP (secure: false).

  • [timeout] {String|Number} : délai d'expiration pour toutes les opérations, en secondes. La valeur par défaut est 60.

  • [cname] {Boolean} : indique s'il faut utiliser un nom de domaine personnalisé pour accéder à OSS. La valeur par défaut est false. Si vous définissez ce paramètre sur true, spécifiez le nom de domaine personnalisé dans le champ endpoint.

  • [isRequestPay] {Boolean} : indique s'il faut activer la fonctionnalité Requester Pays pour le bucket. La valeur par défaut est false. Si vous définissez ce paramètre sur true, l'en-tête 'x-oss-request-payer': 'requester' est envoyé au serveur OSS.

  • [useFetch] {Boolean} : ce paramètre prend effet uniquement dans un environnement de navigateur. La valeur par défaut est false. Si vous définissez ce paramètre sur true, les objets sont téléchargés à l'aide de la méthode fetch. Sinon, XMLHttpRequest est utilisé.

  • [retryMax] {Number} : nombre maximal de tentatives pour une requête échouée en raison d'une erreur réseau ou d'un délai d'expiration. Les tentatives ne sont pas prises en charge pour les opérations putStream.

  • [authorizationV4] {Boolean} : indique s'il faut utiliser une signature V4. La valeur par défaut est false.

Exemples

  • Utilisation de base

    const OSS = require('ali-oss');
    
    const store = new OSS({
      region: 'yourRegion',
      authorizationV4: true,
      accessKeyId: 'your access key',
      accessKeySecret: 'your access secret',
      stsToken: 'yourSecurityToken',
      bucket: 'your bucket name',
    });
  • Utiliser un endpoint accéléré

    Remarque

    Endpoint Global Accelerator : oss-accelerate.aliyuncs.com

    Endpoint accéléré pour les régions hors de Chine continentale : oss-accelerate-overseas.aliyuncs.com

    const OSS = require('ali-oss');
    
    const store = new OSS({
      region: 'yourRegion',
      authorizationV4: true,
      accessKeyId: 'your access key',
      accessKeySecret: 'your access secret',
      stsToken: 'yourSecurityToken',
      bucket: 'your bucket name',
      endpoint: 'oss-accelerate.aliyuncs.com',
    });
  • Utiliser une méthode d'accès personnalisée

    const OSS = require('ali-oss');
    
    const store = new OSS({
      region: 'yourRegion',
      authorizationV4: true,
      stsToken: 'yourSecurityToken',
      accessKeyId: 'your access key',
      accessKeySecret: 'your access secret',
      cname: true,
      endpoint: 'your custome domain',
    });
  • Accès à l'aide d'un jeton STS

    const OSS = require('ali-oss');
    
    const store = new OSS({
      region: 'yourRegion',
      authorizationV4: true,
      accessKeyId: 'your STS key',
      accessKeySecret: 'your STS secret',
      stsToken: 'your STS token',
      refreshSTSToken: async () => {
        const info = await fetch('you sts server');
        return {
          accessKeyId: info.accessKeyId,
          accessKeySecret: info.accessKeySecret,
          stsToken: info.stsToken,
        };
      },
      refreshSTSTokenInterval: 300000,
    });
  • Retenter une requête à l'aide d'un flux

    for (let i = 0; i <= store.options.retryMax; i++) {
      try {
        const result = await store.putStream('<example-object>', fs.createReadStream('<example-path>'));
        console.log(result);
        break; // break if success
      } catch (e) {
        console.log(e);
      }
    }
  • Utiliser une signature V4 et l'option supplémentaire additionalHeaders

    const OSS = require('ali-oss');
    
    const store = new OSS({
      accessKeyId: 'your access key',
      accessKeySecret: 'your access secret',
      bucket: 'your bucket name',
      region: 'oss-cn-hangzhou',
      authorizationV4: true ,
      stsToken: 'yourSecurityToken',
    });
    
    try {
      const bucketInfo = await store.getBucketInfo('your bucket name');
      console.log(bucketInfo);
    } catch (e) {
      console.log(e);
    }
    
    try {
      const putObjectResult = await store.put('your bucket name', 'your object name', {
        headers: {
          // The headers of this request
          header1: 'value1',
          header2: 'value2',
        },
        // The keys of the request headers to include in the V4 signature calculation. Ensure that these additional headers are included in the request headers.
        additionalHeaders: ['additional header1', 'additional header2'],
      });
      console.log(putObjectResult);
    } catch (e) {
      console.log(e);
    }