--- title: "Descargar objeto" url: https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/stratus/download-object/ description: "Esta página lista el método del SDK de Node.js para descargar objetos de un bucket." last_updated: 2026-03-30T08:10:30Z service: Cloud Scale type: general related_links: - name: "Stratus Component Help Documentation" url: /es/cloud-scale/help/stratus/introduction - name: "Download Object Help Documentation" url: /es/cloud-scale/help/stratus/objects/manage-object/download-object/ - name: "Java SDK" url: /es/sdk/java/v1/cloud-scale/stratus/download-object/ - name: "Python SDK" url: /es/sdk/python/v1/cloud-scale/stratus/download-object/ - name: "Web SDK" url: /es/sdk/web/v4/cloud-scale/stratus/overview/ - name: "iOS SDK" url: /es/sdk/ios/v2/cloud-scale/stratus/download-object/ - name: "Android SDK" url: /es/sdk/android/v2/cloud-scale/stratus/download-object/ - name: "Flutter SDK" url: /es/sdk/flutter/v2/cloud-scale/stratus/download-object/ - name: "REST API" url: /es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets --- # Descargar objeto ### Download an Object Los SDKs presentes en esta sección te permitirán [descargar un objeto en particular](https://docs.catalyst.zoho.com/es/cloud-scale/help/stratus/objects/manage-object/download-object/), múltiples objetos o una versión del objeto. La referencia del Bucket utilizada en el fragmento de código a continuación es la [instancia del componente](https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/stratus/create-bucket-instance/). El primer paso de la operación de descarga es una operación `GET` que recupera el objeto requerido del bucket. Para poder descargar un objeto, el solicitante debe tener permisos de acceso `READ`. Sin embargo, los propietarios del bucket tienen la opción de otorgar permisos de acceso `READ` a los usuarios, permitiéndoles descargar el objeto sin usar los encabezados de respuesta requeridos. Si el [Versionado](https://docs.catalyst.zoho.com/es/cloud-scale/help/stratus/stratus-config/general-settings/#versioning) está habilitado para tu bucket, necesitas pasar el `versionId` para descargar la versión particular del objeto. Si no se pasa ningún `versionId`, entonces por defecto se descargará la última versión del objeto. Si el *Versionado* fue habilitado para un bucket y luego deshabilitado, por defecto se descargará el primer objeto principal. Para asegurarte de descargar la última versión de este objeto, necesitas pasar el parámetro `versionId` con el valor "`topVersion`". ```javascript const res = await bucket.getObject("sam/out/sample.txt"); // descargar el objeto a la máquina local const files = fs.createWriteStream('filePath'); res.on('data', (data) => { files.write(data) }); ``` ### Download a Portion of the Object El siguiente método del SDK se utiliza con el parámetro `range`. El parámetro range te permite descargar un `rango` específico de bytes de un objeto. ```javascript const options = { 'versionId': 'djkshr8374yiuhf48', // descargar el objeto con el versionId dado 'range': '0-2000' // rango inicial y final del objeto en bytes } const res = await bucket.getObject("sam/out/sample.txt", options); // descargar el objeto a tu máquina local const files = fs.createWriteStream('filePath'); res.on('data', (data) => { files.write(data) }); ``` ### Download an Object Using Transfer Manager En esta sección, vamos a revisar los métodos del SDK que te permitirán descargar exitosamente objetos grandes de Stratus a tu sistema local usando la técnica **Transfer Manager**. Transfer Manager es una operación donde el objeto grande se divide en múltiples rangos de bytes usando los bytes de inicio y fin del objeto. Cada una de las partes del objeto se devuelve como un stream y se descargan en tu sistema local. **Asegúrate de que los siguientes paquetes estén importados** ```javascript const { TransferManager } = require('zcatalyst-sdk-node/lib/stratus'); ``` #### Create Transfer Manager Instance ```javascript const transferManager = new TransferManager(bucket); // crear instancia de transfer manager ``` #### Download Object as Iterable Part Streams ```javascript const partSize=50; const getObjectRes = await transferManager.getIterableObject("sam/out/sample.txt",partSize); // descargar el objeto a la máquina local const file = fs.createWriteStream('filePath'); // crear un stream de escritura de archivo for await (const chunk of getObjectRes) { file.write(chunk); } ``` #### Generate Object Parts for Download En este método del SDK descargaremos una porción del objeto que se encuentra dentro del rango de bytes de inicio y fin requerido. ```javascript const file = fs.createWriteStream("filePath"); const partSize = 50; const downloadRes = await transferManager.generatePartDownloaders("sam/out/sample.txt", partSize); let partNum = 0; while (partNum < downloadRes.length) { const objectPart = downloadRes[partNum++]; const buffer = await objectPart(); // retorna la parte del objeto como stream // procesar el stream } ``` ### Generate Presigned URL to Download an Object Las URLs prefirmadas son URLs seguras que los usuarios autenticados pueden compartir con sus usuarios no autenticados. Esta URL proporcionará a los usuarios no autenticados autorización temporal para acceder a objetos. La referencia del Bucket utilizada en el fragmento de código a continuación es la [instancia del componente](https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/stratus/create-bucket-instance/). > **Info:** Para usar este método del SDK, necesitas inicializarlo con el ámbito **Admin**. Puedes obtener más información sobre este requisito en esta [sección](https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/overview/#initialize-sdk-with-scopes) **Parámetros utilizados**
Nombre del parámetro Tipo de dato Definición
`key` **String** Un parámetro **obligatorio**. Contendrá el nombre completo del objeto junto con su [ruta](https://docs.catalyst.zoho.com/es/cloud-scale/help/stratus/objects/introduction/#path).
`urlAction` **Request Method** Un parámetro **obligatorio**. Este es el parámetro que te permitirá generar una URL prefirmada para una acción de descarga (GET).
  • `GET`: Para descargar un objeto
`expiry` **String** Este es un parámetro **opcional**. El tiempo de validez de la URL en segundos.
  • Valor predeterminado: **3600 segundos**
  • Valor mínimo: **30 segundos**
  • Valor máximo: **7 días**
`activeFrom` **String** Este es un parámetro **opcional**. Este parámetro contendrá el momento a partir del cual la URL es válida. El valor máximo es **7 días**. Las URLs se activan tan pronto como se generan de forma predeterminada.
```javascript const signedURLRes = await bucket.generatePreSignedUrl("sam/out/sample.txt", 'GET', { 'expiryIn': 100, // tiempo de expiración en segundos 'activeFrom':'12334454327', // activar la URL en la fecha dada 'versionId': '746398diij94839' }); console.log(signedURLRes); ``` **Respuesta de ejemplo para generar una URL prefirmada para descarga** ```json { "signature": "https://sadi-development.zohostratus.com/_signed/text.txt?organizationId=96862383&stsCredential=96858154-96862383&stsDate=1747898364894&stsExpiresAfter=300&stsSignedHeaders=host&stsSignature=SFdW4woI5nXPCSCghrymsv06hM0cimwZpkFwHWngtto", "expiry_in_seconds": "100", "active_from": "12334454327" } ``` **Fragmento de ejemplo que ilustra el uso de una URL prefirmada para descargar un objeto** > **Info:** Este ejemplo se muestra usando el paquete de manejo de solicitudes **Axios**. ```javascript const axios = require('axios'); const fs = require('fs'); // Reemplazar con la URL pre-firmada real de tu archivo. const url = 'https://sadi-development.zohostratus.com/_signed/text.txt?organizationId=96862383&stsCredential=96858154-96862383&stsDate=1747898364894&stsExpiresAfter=300&stsSignedHeaders=host&stsSignature=SFdW4woI5nXPCSCghrymsv06hM0cimwZpkFwHWngtto'; (async () => { try { // Enviar solicitud GET para descargar el archivo como un stream const response = await axios.get(url, { responseType: 'stream' }); // Crear un stream de escritura para guardar el archivo localmente const file = fs.createWriteStream('file_path'); // Reemplaza con la ruta de salida deseada // Canalizar el stream de respuesta al stream del archivo response.data.pipe(file); // Notificar cuando el archivo haya sido descargado file.on('finish', () => { console.log('File downloaded successfully'); }); // Manejar cualquier error durante la escritura file.on('error', (err) => { console.error('Error writing file:', err); }); } catch (err) { console.error('Error downloading file:', err); } })(); ```