Todos os produtos
Search
Central de documentação

Object Storage Service:Initialization (Browser.js SDK)

Última atualização: Sep 20, 2026

O cliente do kit de desenvolvimento de software (SDK) do OSS Browser.js gerencia os recursos do Object Storage Service (OSS), como buckets e arquivos. Para enviar uma requisição ao OSS, inicialize uma instância do cliente e modifique as configurações padrão conforme a sua necessidade.

Pré-requisitos

O SDK do Browser.js precisa estar instalado. Para mais informações, consulte Installation (Browser.js SDK).

Crie um novo cliente

Assinatura V4 (Recomendada)

Utilize o algoritmo de assinatura V4, que é mais seguro. Ao inicializar um cliente com a assinatura V4, declare authorizationV4. As assinaturas V4 têm suporte no SDK do OSS Browser.js V6.20.0 e versões posteriores.

O exemplo a seguir mostra como usar uma assinatura V4 durante a inicialização com um nome de domínio do OSS. Para outros cenários, como a inicialização com um nome de domínio personalizado, modifique o exemplo conforme necessário.

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

Assinatura V1 (Não recomendada)

Importante

A partir de 1º de março de 2025, o Alibaba Cloud Object Storage Service (OSS) não oferece mais a assinatura V1 para novos usuários (ou seja, novos UIDs). A partir de 1º de setembro de 2025, o OSS deixará de atualizar e manter a assinatura V1 e não a oferecerá mais para novos buckets de armazenamento de objetos. Migre para a assinatura V4 o mais rápido possível para evitar interrupções no service. Para mais informações, consulte Anúncio.

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

Configure o cliente

Adicione itens de configuração conforme necessário ao inicializar o cliente. Por exemplo, use timeout para especifique o tempo limite da requisição e stsToken para especifique uma credencial de acesso temporária. Para mais informações sobre os itens de configuração e exemplos compatíveis com o Browser.js, consulte as seções a seguir.

Descrição dos parâmetros de options

  • accessKeyId {String}: o AccessKey ID usado para autenticar suas requisições.

  • accessKeySecret {String}: o AccessKey Secret usado para autenticar suas requisições.

  • [stsToken] {String}: o token do Security Token Service usado para autorização temporária.

  • [refreshSTSToken] {Function}: uma função que define automaticamente o stsToken, o accessKeyId e o accessKeySecret quando o token STS expira. Essa função deve retornar um objeto que contenha o stsToken, o accessKeyId e o accessKeySecret.

  • [refreshSTSTokenInterval] {number}: o intervalo de atualização do token do Security Token Service em milissegundos. Esse valor deve ser menor que o período de expiração do token STS. O valor padrão é 300.000 milissegundos (5 minutos).

  • [bucket] {String}: o bucket padrão que você deseja acessar. Se o bucket não existir, chame a operação putBucket() e crie.

  • [endpoint] {String}: o nome de domínio específico da região do OSS. Este parâmetro tem prioridade maior que o parâmetro region. Defina este parâmetro como um endpoint público, um endpoint interno da mesma região ou um nome de domínio acelerado, conforme necessário. Para mais informações, consulte a lista de endpoints.

  • [region] {String}: a região onde o bucket está localizado. O valor padrão é oss-cn-hangzhou. Use um valor de região específico, como oss-cn-hangzhou ou oss-cn-beijing. Você também pode definir este parâmetro como rg-china-mainland para acessar Anywhere Buckets na parte continental da china, mas um valor de região específico é preferível para um roteamento regional mais preciso.

  • [internal] {Boolean}: especifique se o acesso ao OSS será feito pela rede interna da Alibaba Cloud. O valor padrão é false. Se o seu servidor também for executado na Alibaba Cloud, defina este parâmetro como true para reduzir os custos de transferência de dados.

  • [secure] {Boolean}: especifique se o cliente OSS usa o protocolo HTTPS (secure: true) ou HTTP (secure: false).

  • [timeout] {String|Number}: o tempo limite para todas as operações, em segundos. O valor padrão é 60.

  • [cname] {Boolean}: especifique se um nome de domínio personalizado será usado para acessar o OSS. O valor padrão é false. Se você definir este parâmetro como true, precisará especifique o nome de domínio personalizado no campo endpoint.

  • [isRequestPay] {Boolean}: especifique se o recurso Requester Pays ative para o bucket. O valor padrão é false. Se você definir este parâmetro como true, o cabeçalho 'x-oss-request-payer': 'requester' será enviado ao servidor OSS.

  • [useFetch] {Boolean}: este parâmetro só tem efeito em um ambiente de navegador. O valor padrão é false. Se você definir este parâmetro como true, os objetos serão carregados usando o método fetch. Caso contrário, o XMLHttpRequest será usado.

  • [retryMax] {Number}: o número máximo de tentativas para uma requisição que falha devido a um erro de rede ou tempo limite. Não há suporte para tentativas em operações putStream.

  • [authorizationV4] {Boolean}: especifique se uma assinatura V4 será usada. O valor padrão é false.

Exemplos

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

    Nota

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

    Endpoint acelerado para regiões fora da parte continental da china: 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',
    });
  • Use um método de acesso 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',
    });
  • Acesse usando um token 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,
    });
  • Tente novamente uma requisição usando um 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);
      }
    }
  • Use uma assinatura V4 e a opção 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);
    }