Todos los productos
Search
Centro de documentos

Object Storage Service:Inicialización (SDK de Browser.js)

Última actualización: Sep 15, 2026

El cliente del kit de desarrollo de software (SDK) de Browser.js para OSS gestiona los recursos de Object Storage Service (OSS), como los buckets y los archivos. Para enviar una solicitud a OSS, debe inicializar una instancia de cliente y puede modificar la configuración predeterminada según sus necesidades.

Requisitos previos

Debe tener instalado el SDK de Browser.js. Para obtener más información, consulte Installation (Browser.js SDK).

Crear un cliente nuevo

Signature V4 (Recommended)

Utilice el algoritmo de firma V4, que es más seguro. Cuando inicialice un cliente con una firma V4, declare authorizationV4. Las firmas V4 son compatibles con el SDK de Browser.js para OSS en la versión 6.20.0 y posteriores.

A continuación se muestra cómo usar una firma V4 durante la inicialización con un nombre de dominio de OSS. Para otros escenarios, como la inicialización con un nombre de dominio personalizado, modifique el ejemplo según corresponda.

<!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 (Not recommended)

Importante

A partir del 1 de marzo de 2025, Alibaba Cloud Object Storage Service (OSS) ya no ofrece la firma V1 a usuarios nuevos (es decir, UID nuevos). Desde el 1 de septiembre de 2025, OSS dejará de actualizar y mantener la firma V1, y ya no la ofrecerá para los buckets de object storage nuevos. Cambie a la firma V4 lo antes posible para evitar interrupciones en el servicio. Para obtener más información, consulte Anuncio.

<!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>

Configurar el cliente

Al inicializar el cliente, agregue los elementos de configuración que necesite. Por ejemplo, use timeout para especificar el tiempo de espera de la solicitud y stsToken para indicar una credencial de acceso temporal. En las siguientes secciones encontrará más información sobre los elementos de configuración y los ejemplos compatibles con Browser.js.

Descripciones de los parámetros de options

  • accessKeyId {String}: el AccessKey ID que se usa para autenticar las solicitudes. Un par de AccessKey es una credencial de cuenta de Alibaba Cloud que se comparte entre los productos de la nube. Con el mismo par de AccessKey puede acceder a OSS, ECS y otros productos de Alibaba Cloud. No existe un AccessKey exclusivo para OSS. Para crear un par de AccessKey, inicie sesión en la consola de Resource Access Management (RAM), cree un usuario de RAM, genere un AccessKey ID y un AccessKey secret para ese usuario, y asigne la política de acceso AliyunOSSFullAccess al usuario de RAM.

  • accessKeySecret {String}: el AccessKey secret que obtiene desde la consola de administración de Alibaba Cloud.

  • [stsToken] {String}: el token de Security Token Service que se utiliza para la autorización temporal.

  • [refreshSTSToken] {Function}: función que establece automáticamente los valores de stsToken, accessKeyId y accessKeySecret cuando el token de STS caduca. Esta función debe devolver un objeto que contenga stsToken, accessKeyId y accessKeySecret.

  • [refreshSTSTokenInterval] {number}: intervalo de renovación del token de Security Token Service, en milisegundos. Este valor debe ser menor que el periodo de caducidad del token de STS. El valor predeterminado es 300,000 milisegundos (5 minutos).

  • [bucket] {String}: el bucket predeterminado al que desea acceder. Si el bucket no existe, llame a la operación putBucket() para crearlo.

  • [endpoint] {String}: el nombre de dominio específico de la región de OSS. Este parámetro tiene mayor prioridad que el parámetro region. Según sus necesidades, puede establecer este parámetro en un endpoint público, un endpoint interno de la misma región o un nombre de dominio acelerado. Para obtener más información, consulte la lista de endpoints.

  • [region] {String}: la región donde se encuentra el bucket. El valor predeterminado es oss-cn-hangzhou. Utilice un valor de región específico, como oss-cn-hangzhou u oss-cn-beijing. También puede establecer este parámetro en rg-china-mainland para acceder a Anywhere Buckets en China continental, aunque se recomienda un valor de región específico para lograr un enrutamiento regional más preciso.

  • [internal] {Boolean}: indica si se accede a OSS mediante la red interna de Alibaba Cloud. El valor predeterminado es false. Si su servidor también se ejecuta en Alibaba Cloud, establezca este parámetro en true para reducir los costos de transferencia de datos.

  • [secure] {Boolean}: indica si el cliente de OSS usa el protocolo HTTPS (secure: true) o HTTP (secure: false).

  • [timeout] {String|Number}: el tiempo de espera para todas las operaciones, en segundos. El valor predeterminado es 60.

  • [cname] {Boolean}: indica si se usa un nombre de dominio personalizado para acceder a OSS. El valor predeterminado es false. Si establece este parámetro en true, debe especificar el nombre de dominio personalizado en el campo endpoint.

  • [isRequestPay] {Boolean}: indica si se habilita la función Requester Pays para el bucket. El valor predeterminado es false. Si establece este parámetro en true, se envía el encabezado 'x-oss-request-payer': 'requester' al servidor de OSS.

  • [useFetch] {Boolean}: este parámetro solo surte efecto en un entorno de navegador. El valor predeterminado es false. Si lo establece en true, los objetos se cargan mediante el método fetch; de lo contrario, se usa XMLHttpRequest.

  • [retryMax] {Number}: el número máximo de reintentos para una solicitud que falla por un error de red o por tiempo de espera agotado. Las operaciones putStream no admiten reintentos.

  • [authorizationV4] {Boolean}: indica si se usa una firma V4. El valor predeterminado es false.

Ejemplos

  • Uso básico

    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',
    });
  • Usar un endpoint acelerado

    Nota

    Endpoint de Global Accelerator: oss-accelerate.aliyuncs.com

    Endpoint acelerado para regiones fuera de China continental: 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',
    });
  • Usar un método de acceso personalizado

    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',
    });
  • Acceder mediante un token de 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,
    });
  • Reintentar una solicitud con un stream

    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);
      }
    }
  • Usar una firma V4 y la opción opcional 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);
    }