--- title: "Descargar objeto" url: https://docs.catalyst.zoho.com/es/sdk/python/v1/cloud-scale/stratus/download-object/ description: "Esta página enumera el método del SDK de Python 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: "Java SDK" url: /es/sdk/java/v1/cloud-scale/stratus/download-object/ - name: "Node.js SDK" url: /es/sdk/nodejs/v2/cloud-scale/stratus/download-object/ - name: "Web SDK" url: /es/sdk/web/v4/cloud-scale/stratus/download-object/ - 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 ### Descargar un 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/), múltiples objetos 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/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 [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`, entonces por defecto se descargará la versión más reciente del objeto. Si *Versioning* fue habilitado para un bucket y luego deshabilitado. Por defecto, se descargará el objeto principal original. Para asegurarte de descargar la versión más reciente de este objeto, necesitas pasar el parámetro `versionId` con el valor "`topVersion`". ```python res = bucket.get_object("sam/out/sample.txt") # descarga el objeto a la máquina local file = open('file_path','wb') file.write(res) ``` ### Descargar una porción del objeto El siguiente método del SDK se usa con el parámetro `range`. El parámetro range te permite descargar un `range` específico de bytes de un objeto. ```python options = { 'version_id': '01hx66f1383jm48w9sa4z20kve', # descargar el objeto con el Id de versión dado 'range': '0-200' # rango de inicio y fin de un objeto } res = bucket.get_object('"sam/out/sample.txt", options) # descarga el objeto a la máquina local file = open('file_path','wb') file.write(res) ``` ### 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 de **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. #### Obtener instancia de Transfer Manager Para realizar operaciones de transfer manager, necesitas obtener una instancia de objeto de transfer manager. Nos referiremos a esta instancia del componente en varios fragmentos de código donde trabajamos con operaciones de transfer manager realizadas en objetos almacenados en un bucket en Stratus. **Parámetro utilizado** `bucket`: Esta es la instancia de bucket que necesitas haber inicializado anteriormente usando este [método del SDK](https://docs.catalyst.zoho.com/es/sdk/nodejs/v2/cloud-scale/stratus/create-bucket-instance/). **Asegúrate de que los siguientes paquetes estén importados** ```python from zcatalyst_sdk.stratus.transfer_manager import TransferManager ``` ```python transfer_manager = TranferManager(bucket) ``` #### Obtener objeto iterable Devuelve las partes iterables del objeto. El usuario puede escribir estas partes en su máquina local usando un iterador. > **Note:** Usa un solo archivo para escribir porque devuelve partes iterables, no el objeto completo. Si escribes en archivos individuales, necesitarás combinarlos en uno solo. > **Info:** Asegúrate de proporcionar `part_size` en **Mb**. ```python res = transfer_manager.get_iterable_object("sam/out/sample.txt", 20) file = open('file_path','wb') # almacenar el objeto en la máquina local for chunk in res: file.write(chunk) ``` #### Generar descargadores de partes del objeto Cuando un usuario necesita descargar un archivo grande (ejemplo: archivo de 10 GB), usar el método `get_object()` no es práctico. En su lugar, el usuario puede optar por este método del SDK. Al llamar al método `generate_part_downloaders()` con los parámetros `key(str)` y `part_size(Long)`, el usuario puede obtener funciones del transfer manager. Estas funciones, devueltas en orden ascendente, cada una descarga una parte específica del objeto. Las partes se determinan según el tamaño de parte especificado. ```python res = transfer_manager.generate_part_downloaders("sam/out/sample.txt",20) file = open('file_path','wb') for part in res: file.write(part()) ``` > **Info:** El archivo debe ser subido a través de la API o el SDK para habilitar descargas parciales. El part_size debe ser mayor que 5 MB y menor que 100 MB. ### 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 los 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/python/v1/cloud-scale/stratus/create-bucket-instance/). > **Info:** Para utilizar este método del SDK, necesitas inicializarlo con el alcance **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` **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**
`active_from` **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 de forma predeterminada.
```python pre_signed_url_res = bucket.generate_presigned_url("sam/out/sample.txt",url_action='GET',expiry_in_sec='300', active_from='1023453725828', version_id='jdery748tfge78') print(pre_signed_url_res) ``` **Respuesta de ejemplo para generar una URL prefirmada para descarga** ```json { "signature": "https://zcstratus123-development.zohostratus.com/_signed/sam/out/sample.txt?organizationId=83963316&stsCredential=74660608-83963316&stsDate=1726492859577&stsExpiresAfter=300&stsSignedHeaders=host&stsSignature=_G8mnq-03vKgPlnJPmqBvzEnT3Hk-SnECuG-cgURyDs", "expiry_in_seconds": "300", "active_from": "1726492859577" } ``` **Fragmento de ejemplo que ilustra el uso de URL prefirmada para descargar un objeto** ```python import requests #URL prefirmada para descargar el archivo url = "https://sadi-development.zohostratus.com/_signed/code.txt?organizationId=96862383&stsCredential=96858154-96862383&stsDate=1747899927592&stsExpiresAfter=300&stsSignedHeaders=host&stsSignature=-l10AlSsbZzkq6t8HHgDfNkEiiDWFaaU9M3-hPBz0M8" #Ruta donde se guardará el archivo descargado localmente file_path = "file_path" # Reemplazar con la ruta real del archivo #Enviar una solicitud GET para descargar el archivo response = requests.get(url, stream=True) #Verificar si la solicitud fue exitosa if response.status_code == 200: #Abrir el archivo de destino en modo de escritura binaria with open(file_path, "wb") as f: #Escribir datos en bloques para manejar archivos grandes for chunk in response.iter_content(chunk_size=8192): if chunk: f.write(chunk) print("Download completed successfully.") else: print("Object download failed. Status code:", response.status_code) ```