--- title: "Descargar objeto" url: https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/stratus/download-object/ description: "Esta página lista el método del Java SDK 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: "Node.js SDK" url: /es/sdk/nodejs/v2/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 Los SDKs presentes en esta sección te permitirán [descargar un objeto particular](https://docs.catalyst.zoho.com/es/cloud-scale/help/stratus/objects/manage-object/download-object/), o una versión del objeto. La referencia de Bucket utilizada en el siguiente fragmento de código es la [instancia del componente](https://docs.catalyst.zoho.com/es/sdk/java/v1/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 [Versioning](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`, por defecto se descargará la última versión del objeto. Si *Versioning* fue habilitado para un bucket y luego deshabilitado, por defecto se descargará el objeto principal primero. Para asegurarte de descargar la última versión de este objeto, necesitas pasar el parámetro `versionId` con el valor "`topVersion`". #### Fragmento de código de ejemplo **Package Imports** ```java import java.nio.file.Path; import java.nio.file.Files; import java.nio.file.StandardCopyOption; import java.io.*; ``` ```java InputStream dataStream = bucket.getObject("sam/out/sample.txt"); // descargar el objeto a tu máquina local Path path = Path.of("file_path"); // especificar una ruta para almacenar el objeto descargado Files.copy(dataStream, path, StandardCopyOption.REPLACE_EXISTING); ``` ### Descargar una porción del objeto El siguiente SDK implementa el método `setRange()`. Este método te permite descargar un rango específico de bytes de un objeto. #### Fragmento de código de ejemplo **Package Imports** ```java import com.zc.component.stratus.beans.ZCGetObjectOptions; import java.nio.file.Path; import java.nio.file.Files; import java.nio.file.StandardCopyOption; import java.io.*; ``` ```java // agregar opciones de descarga ZCGetObjectOptions options = ZCGetObjectOptions.getInstance(); options.setVersionId("3yt5ehjbjghds3i28"); options.setRange("20-200"); // rango inicial y final del objeto en bytes InputStream dataStream = bucket.getObject("sam/out/sample.txt", options); // descargar el objeto a tu máquina local Path path = Path.of("file_path"); // especificar una ruta para almacenar el objeto descargado Files.copy(dataStream, path, StandardCopyOption.REPLACE_EXISTING); ``` ### Descargar un objeto usando 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 a tu sistema local. #### Crear instancia de Transfer Manager #### Fragmento de código de ejemplo **Package Imports** ```java import com.zc.component.stratus.transfer.ZCTransferManager; ``` ```java ZCTransferManager transferManager= ZCTransferManager.getInstance(bucket); ``` #### Descargar objeto como streams de partes iterables #### Fragmento de código de ejemplo **Package Imports** ```java import java.nio.file.StandardOpenOption; import java.nio.file.Files; import java.util.Iterator; import java.nio.file.Path; import java.io.*; ``` ```java Iterable <InputStream> Iterable = transferManager.getIterableObject("sam/out/sample.txt", 100 L); Path path = Path.of("file_path"); Iterator <InputStream> res = Iterable.iterator(); while (res.hasNext()) { InputStream data = res.next(); // obtener cada parte del objeto como stream Files.copy(data, path, StandardCopyOption.REPLACE_EXISTING); // escribir el stream en la ruta de archivo local } ``` #### Generar partes de objeto para descarga En este método del SDK descargaremos una porción del objeto que se encuentra dentro del rango requerido de bytes de inicio y fin. **Parámetros utilizados** * `PartSize`: Es el tamaño de cada parte en Mb * `key`: Contendrá el nombre del objeto #### Fragmento de código de ejemplo **Package Imports** ```java import java.nio.file.StandardOpenOption; import java.nio.file.Files; import com.zc.component.stratus.beans.ZCStratusGetObject; import java.nio.file.Path; import java.io.*; ``` ```java Path path = Path.of("file_path"); // obtener la lista de funciones de partes List<ZCStratusGetObject> parts = transferManager.generatePartDownloaders("sam/out/sample.txt", 100L); // crear un archivo para almacenar el stream descargado. Files.createFile(path); int partNumber = 1; // ejecutar cada función para descargar las partes del objeto for (ZCStratusGetObject part : parts) { // obtener la parte del objeto como stream InputStream inputStream = part.getPart(); System.out.println("Part "+ partNumber++ + " Downloaded"); // escribir los datos del stream en la máquina local Files.write(path, inputStream.readAllBytes(), StandardOpenOption.APPEND); } ``` ### Generar URL prefirmada para descargar un objeto 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 de Bucket utilizada en el siguiente fragmento de código es la [instancia del componente](https://docs.catalyst.zoho.com/es/sdk/java/v1/cloud-scale/stratus/create-bucket-instance/). > **Info:** Para usar este método del SDK, necesitas inicializarlo con el scope **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). |
| `URL_ACTION` | **Enum** | Un parámetro **obligatorio**. Este es el parámetro que te permitirá generar una URL prefirmada para la acción de descarga.
|
| `expiry` | **String** | Este es un parámetro **opcional**. El tiempo de validez de la URL en segundos.
|
| `activeFrom` | **String** | Este es un parámetro **opcional**. Este parámetro contendrá el tiempo después del cual la URL es válida. El valor máximo es **7 días**. Las URLs se activan tan pronto como se generan por defecto. |