Todos os produtos
Search
Central de documentação

Object Storage Service:Append upload (Browser.js SDK)

Última atualização: Sep 24, 2026

O upload por acréscimo adiciona conteúdo ao final de um objeto do tipo append existente, utilizando o método AppendObject.

Precauções

  • Para fazer um upload por acréscimo usando o kit de desenvolvimento de software (SDK) Browser.js, exponha o cabeçalho x-oss-next-append-position nas regras de cross-origin do bucket. Caso contrário, não será possível obter a posição de acréscimo nextAppendPosition e o upload falhará. Para mais informações, consulte Set cross-origin resource sharing.

  • Este tópico demonstra como criar uma instância do OSSClient com um endpoint do OSS. Para configurações alternativas, como o uso de um domínio personalizado ou a autenticação com credenciais do Security Token Service (STS), consulte Initialization (Browser.js SDK).

  • Este tópico demonstra como criar uma instância do OSSClient com um endpoint do OSS. Para configurações alternativas, como o uso de um domínio personalizado ou a autenticação com credenciais do Security Token Service (STS), consulte Client configuration.

  • Se o objeto não existir, a operação AppendObject criará um novo objeto do tipo append.

  • Se o objeto já existir, os seguintes casos se aplicam ao chamar a operação AppendObject:

    • Se for um objeto do tipo append e a posição de acréscimo especificada for igual ao tamanho atual do objeto, o conteúdo será adicionado ao final dele.

    • Se for um objeto do tipo append, mas a posição de acréscimo especificada não corresponder ao tamanho atual do objeto, a exceção PositionNotEqualToLength será retornada.

    • Se não for um objeto do tipo append, como um objeto Normal enviado por meio de um upload simples, a exceção ObjectNotAppendable será retornada.

Permissões

Por padrão, uma conta Alibaba Cloud tem permissões totais. Usuários RAM ou funções RAM sob uma conta Alibaba Cloud não possuem nenhuma permissão por padrão. A conta Alibaba Cloud ou o administrador da conta deve conceder as permissões de operação por meio de RAM policies ou Bucket Policy.

API

Ação

Descrição

AppendObject

oss:PutObject

Use esta operação para fazer o upload de um objeto acrescentando seu conteúdo a um objeto existente.

oss:PutObjectTagging

Especifique as tags do objeto por meio de x-oss-tagging ao fazer o upload de um objeto por acréscimo. Esta permissão é obrigatória para essa ação.

Exemplos

O código a seguir mostra como realizar um upload por acréscimo:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <script src="https://gosspublic.alicdn.com/aliyun-oss-sdk-6.17.1.min.js"></script>
  </head>
  <body>
    <input type="file" id="file" />
    <button id="upload">Upload</button>
    <script>
      const upload = document.getElementById("upload");

      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 STS.
        accessKeyId: 'yourAccessKeyId',
        accessKeySecret: 'yourAccessKeySecret',
        // The security token obtained from STS.
        stsToken: 'yourSecurityToken',
        // Specify the bucket name.
        bucket: 'examplebucket'
      });

      upload.addEventListener("click", async () => {
        const target = file.files[0];
        // Specify the full path of the object. The full path cannot contain the bucket name. Example: examplefile.txt.
        // The first append upload. The return value indicates the position for the next append operation.
        const result = await client.append("examplefile.txt", target);

        await client.append("123", result, {
          // The second append upload. The position for subsequent append operations is the length of the object (Content-Length) before the append operation.
          position: result.nextAppendPosition,
        });
      });
    </script>
  </body>
</html>

Referências

  • Para o código de exemplo completo de um upload por acréscimo, consulte Exemplos no GitHub.

  • Para mais informações sobre a operação de API para upload por acréscimo, consulte AppendObject.