Todos os produtos
Search
Central de documentação

Object Storage Service:Upload objects using OSS SDK for Node.js

Última atualização: Sep 25, 2026

Este tópico descreve como fazer upload de objetos em um bucket com versionamento ativado no Object Storage Service (OSS).

Upload simples

Ao enviar uma solicitação de upload de um objeto para um bucket com versionamento ativado, o OSS gera um ID de versão exclusivo para o objeto enviado e inclui esse ID na resposta como valor do cabeçalho x-oss-version-id. Ao fazer upload de um objeto para um bucket com versionamento suspenso, o OSS atribui o ID de versão null ao objeto. Se o objeto enviado tiver o mesmo nome de um objeto existente, o objeto existente é substituído pelo novo. Dessa forma, cada objeto terá apenas uma versão com ID null.

O código a seguir mostra como executar um upload simples:

const OSS = require('ali-oss');

const client = new OSS({
  // Specify the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the region to oss-cn-hangzhou. 
  region: 'yourregion',
  // Obtain access credentials from environment variables. Before you run the sample code, make sure that you have configured environment variables OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET. 
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  authorizationV4: true,
  // Specify the name of the bucket. 
  bucket: 'yourbucketname'
});

async function put() {
  const result = await client.put('fileName', path.normalize('D:\\localpath\\examplefile.txt'));
  console.log(result.res.headers['x-oss-version-id']); // Display the version ID of the uploaded object. 
}
put();

Upload por acréscimo

Em um bucket com versionamento ativado, a operação AppendObject só pode ser executada na versão atual de um objeto do tipo appendable.

Nota
  • Ao executar a operação AppendObject na versão atual de um objeto appendable, o OSS não gera uma versão anterior para o objeto.

  • Ao executar a operação PutObject ou DeleteObject em um objeto cuja versão atual é appendable, o OSS armazena esse objeto como versão anterior e impede que ele seja acrescido posteriormente.

  • A operação AppendObject não pode ser executada em um objeto cuja versão atual não seja appendable, como um objeto normal ou um marcador de exclusão.

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

const OSS = require('ali-oss');

const client = new OSS({
  // Specify the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the region to oss-cn-hangzhou. 
  region: 'yourregion',
  // Obtain access credentials from environment variables. Before you run the sample code, make sure that you have configured environment variables OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET. 
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  authorizationV4: true,
  // Specify the name of the bucket. 
  bucket: 'yourbucketname'
});

async function append() {
  await client.append('filename', path.normalize('D:\\localpath\\examplefile.txt'), {
    partSize: 100 * 1024
  });
}
append();

Upload de várias partes

Ao chamar o método MultipartUpload para concluir uma tarefa MultipartUpload de um objeto em um bucket com versionamento ativado, o OSS gera um ID de versão exclusivo para o objeto e o retorna no campo x-oss-version-id do cabeçalho de resposta.

O código a seguir mostra como executar um upload de várias partes:

const OSS = require('ali-oss');

const client = new OSS({
  // Specify the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the region to oss-cn-hangzhou. 
  region: 'yourregion',
  // Obtain access credentials from environment variables. Before you run the sample code, make sure that you have configured environment variables OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET. 
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  authorizationV4: true,
  // Specify the name of the bucket. 
  bucket: 'yourbucketname'
});

async function multipartUpload() {
  const result = await client.multipartUpload('filename', path.normalize('D:\\localpath\\examplefile.txt'), {
    partSize: 100 * 1024
  });
  // Display the version ID of the uploaded object. 
  console.log(result.res.headers['x-oss-version-id']); 
}
multipartUpload();

Referências

  • Para obter mais informações sobre a operação de API usada no upload simples, consulte PutObject.

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

  • Para obter mais informações sobre a operação de API usada no upload de várias partes, consulte CompleteMultipartUpload.