Todos os produtos
Search
Central de documentação

Object Storage Service:Inicialização (Browser.js SDK)

Última atualização: Jul 03, 2026

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

Pré-requisitos

Instale o Browser.js SDK. Para mais informações, consulte Instalação (Browser.js SDK).

Crie um novo cliente

Signature V4 (Recommended)

Use o algoritmo de assinatura V4, mais seguro. Ao inicializar um cliente com assinatura V4, declare authorizationV4. O OSS Browser.js SDK V6.20.0 e versões posteriores oferecem suporte a assinaturas V4.

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

Signature V1 (Not recommended)

Importante
<!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 ao inicializar o cliente. Por exemplo, use timeout para definir o tempo limite da solicitação e stsToken para especificar uma credencial de acesso temporária. Para mais detalhes sobre os itens de configuração e exemplos compatíveis com o Browser.js, consulte as seções a seguir.

Descrições dos parâmetros options

  • accessKeyId {String}: AccessKey ID obtido no Alibaba Cloud Management Console.

  • accessKeySecret {String}: AccessKey secret obtido no Alibaba Cloud Management Console.

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

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

  • [refreshSTSTokenInterval] {number}: 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}: Bucket padrão a ser acessado. Se o bucket não existir, chame a operação putBucket() para criá-lo.

  • [endpoint] {String}: Nome de domínio específico da região do OSS. Esse parâmetro tem prioridade maior que o parâmetro region. Defina-o 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}: Região onde o bucket está localizado. O valor padrão é oss-cn-hangzhou.

  • [internal] {Boolean}: Define se o acesso ao OSS ocorre pela rede interna da Alibaba Cloud. O valor padrão é false. Se o servidor também estiver em execução na Alibaba Cloud, defina esse parâmetro como true para reduzir custos de transferência de dados.

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

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

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

  • [isRequestPay] {Boolean}: Define se o recurso Requester Pays deve ser ativado para o bucket. O valor padrão é false. Se definido como true, o cabeçalho 'x-oss-request-payer': 'requester' é enviado ao servidor OSS.

  • [useFetch] {Boolean}: Parâmetro válido apenas em ambiente de navegador. O valor padrão é false. Se definido como true, os objetos são carregados usando o método fetch. Caso contrário, XMLHttpRequest é utilizado.

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

  • [authorizationV4] {Boolean}: Define se uma assinatura V4 deve 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',
    });
  • Usar um endpoint acelerado

    Nota

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

    Endpoint acelerado para regiões fora da 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 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',
    });
  • Acessar 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,
    });
  • Tentar novamente uma solicitação usando 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 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);
    }