Todos os produtos
Search
Central de documentação

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

Última atualização: Jul 03, 2026

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

Upload simples

Ao iniciar uma solicitação de upload de objeto para um bucket com versionamento habilitado, 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. Se você fizer upload de um objeto para um bucket com versionamento suspenso, o OSS atribuirá null como ID de versão do objeto. Caso o objeto enviado tenha o mesmo nome de um objeto existente, o objeto existente será sobrescrito. Dessa forma, cada objeto terá apenas uma versão cujo ID é null.

O código a seguir mostra como fazer 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 habilitado, a operação AppendObject só pode ser executada na versão atual de um objeto anexável.

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

  • Quando as operações PutObject ou DeleteObject são aplicadas a um objeto cuja versão atual é anexável, o OSS armazena esse objeto como uma versão anterior e impede novos acréscimos.

  • Não é possível executar a operação AppendObject em um objeto cuja versão atual não seja anexável, como um objeto normal ou um marcador de exclusão.

O código a seguir demonstra como fazer 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 multipartido

Se você chamar o método MultipartUpload para concluir uma tarefa de upload multipartido de um objeto em um bucket com versionamento habilitado, o OSS gerará um ID de versão exclusivo para o objeto e retornará esse ID no campo x-oss-version-id do cabeçalho de resposta.

O código a seguir ilustra como executar um upload multipartido:

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 em uploads simples, consulte PutObject.

  • Para detalhes sobre a operação de API correspondente ao upload por acréscimo, veja AppendObject.

  • Caso precise de informações adicionais sobre a operação de API para upload multipartido, acesse CompleteMultipartUpload.