Todos los productos
Search
Centro de documentos

Object Storage Service:Carga reanudable (SDK de Node.js)

Última actualización: Sep 25, 2026

La carga reanudable divide un archivo en varias partes. Estas partes se cargan por separado y luego se combinan para formar el archivo completo.

Nota

La sintaxis catch del siguiente código de ejemplo se basa en ES6 Promise y async/await. Para obtener más información sobre cómo usar el kit de desarrollo de software (SDK), consulte Install the Node.js SDK.

Para obtener más información sobre la carga reanudable, consulte Resumable upload. También puede establecer reglas de ciclo de vida para eliminar periódicamente los fragmentos no deseados. Para obtener más información, consulte Delete fragments.

La función de carga multiparte proporciona el parámetro progress, que le permite especificar una devolución de llamada de progreso. En esta devolución de llamada, el SDK pasa el porcentaje de finalización y la información del punto de control como parámetros. Para efectuar una carga reanudable, guarde la información del punto de control durante la carga. Si ocurre un error, pase el punto de control guardado a la función multipartUpload. De este modo, la carga se reanuda desde el punto donde falló.

Código de ejemplo

A continuación se muestra cómo efectuar una carga reanudable.

const OSS = require('ali-oss')

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

// Set yourfilepath to the local path of the file to upload.
const filePath = "yourfilepath";

let checkpoint;
async function resumeUpload() {
  // Retry five times.
  for (let i = 0; i < 5; i++) {
    try {
      const result = await client.multipartUpload('object-name', filePath, {
        checkpoint,
        async progress(percentage, cpt) {
          checkpoint = cpt;
        },
      });
      console.log(result);
      break; // Break the current loop.
    } catch (e) {
      console.log(e);
    }
  }
}

resumeUpload();

El código de ejemplo anterior guarda el punto de control en una variable. Si el programa falla, la información del punto de control se pierde. Para evitarlo, guarde el punto de control en un archivo. Así, el programa podrá leer la información del punto de control desde el archivo después de reiniciarse.

Referencias

Para consultar el código de ejemplo completo de la carga reanudable, vea el ejemplo de GitHub.