--- title: "Download Object" url: https://docs.catalyst.zoho.com/en/sdk/javascript/v1/cloudscale/stratus/download-object/ description: "This page describes the method to execute circuits in your application with sample code snippets." last_updated: 2026-09-09T10:45:38Z service: CloudScale type: general related_links: - name: "Catalyst CloudScale" url: /en/cloud-scale/ - name: "Stratus Help Documentation" url: /en/cloud-scale/help/stratus/introduction/ - name: "Java SDK Documentation" url: /en/sdk/java/v1/cloud-scale/stratus/download-object/ - name: "Python SDK Documentation" url: /en/sdk/python/v1/cloud-scale/stratus/download-object/ - name: "iOS SDK Documentation" url: /en/sdk/ios/v2/cloud-scale/stratus/download-object/ - name: "Android SDK Documentation" url: /en/sdk/android/v2/cloud-scale/stratus/download-object/ - name: "Flutter SDK Documentation" url: /en/sdk/flutter/v2/cloud-scale/stratus/download-object/ - name: "REST API Documentation" url: /en/api/code-reference/cloud-scale/stratus/download-object/#DownloadObject repository: name: "Repository" url: https://github.com/catalystbyzoho/zcatalyst-sdk-js --- # Download Object > **Note:** Ensure you have installed the [required package](https://docs.catalyst.zoho.com/en/sdk/javascript/v1/cloudscale/stratus/overview/#prerequisites) to use this SDK method. ### Download an Object The SDKs present in the section will allow you to [download a particular object](https://docs.catalyst.zoho.com/en/cloud-scale/help/stratus/objects/manage-object/download-object/), multiple objects, or version of the object. The `bucket` reference used in the following code snippet is the [component instance](https://docs.catalyst.zoho.com/en/sdk/javascript/v1/cloudscale/stratus/create-bucket-instance/). The first step of the download operation is a `GET` operation that retrieves the required object from the bucket. To be able to download an object, the requester must have `READ` access permissions. However, owners of the bucket do have the option to grant `READ` access permissions to users, allowing them to download the object without using the required response headers. If [Versioning](https://docs.catalyst.zoho.com/en/cloud-scale/help/stratus/stratus-config/general-settings/#versioning) is enabled for your bucket, you need to pass the `versionId` to download the particular version of the object. If no `versionId` is passed, then by default, the latest version of the object will be downloaded. If *Versioning* was enabled for a bucket, then disabled. By default, the principal first object will be downloaded. To ensure you download the latest version of this object, you need to pass the `versionId` param with the value "`topVersion`". ```javascript const res = await bucket.getObject("sam/out/sample.txt"); // download the object to local machine const files = fs.createWriteStream('filePath'); res.on('data', (data) => { files.write(data) }); ``` ### Download a Potion of the Object The following SDK method is used with the `range` parameter. The range parameter allows you to download a specific `range` of bytes of an object. ```javascript const options = { 'versionId': 'djkshr8374yiuhf48', // download the object with given versionId 'range': '0-2000' // start and end range of the object in bytes } const res = await bucket.getObject("sam/out/sample.txt", options); // download the object to your local machine const files = fs.createWriteStream('filePath'); res.on('data', (data) => { files.write(data) }); ``` ### Download an Object Using Transfer Manager Utility In this section, we are going to go over SDK methods that will allow you to successfully download large objects from Stratus to your local system using the *Transfer Manager* utility. The *Transfer Manager* utility is an operation where the large object is split into multiple byte ranges using the start and end bytes range of the object. Each of the object’s parts is then returned as a stream, and they are downloaded to your local system. #### Additional Import Requirement You need to import this additional module to implement the *Transfer Manager* utility. ```javascript const {TransferManager} = require ('@zcatalyst/stratus')// Stratus module ``` #### Create Transfer Manage Instance ```javascript const transferManager = new TransferManager(bucket); // create transfer manager instance ``` #### Download Object as Iterable Part Streams ```javascript const partSize=50; const getObjectRes = await transferManager.getIterableObject("sam/out/sample.txt",partSize); // download the object to local machine const file = fs.createWriteStream('filePath'); // create a file write stream for await (const chunk of getObjectRes) { file.write(chunk); } ``` #### Generate Object Parts for Download Using this SDK method you can download a portion of the object that falls under the required start and end range of bytes. ```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(); // return the object part as stream // process the stream } ``` ### Generate Presigned URL to Download an Object > **Info:** To use this SDK method, you need to initialize it with **Admin** scope. You can learn more about this requirement from this [section](https://docs.catalyst.zoho.com/en/sdk/javascript/v1/scopes/). Presigned URLs are secure URLs that authenticated users can share to their non-authenticated users. This URL will provide non-authenticated users with temporary authorization to access objects. The `bucket` reference used in the following code snippet is the [component instance](https://docs.catalyst.zoho.com/en/sdk/javascript/v1/cloudscale/stratus/create-bucket-instance/). #### Parameters Used
| Parameter Name | Data Type | Definition |
|---|---|---|
| `key` | **String** | A **mandatory** parameter. Will hold the complete name of the object. |
| `urlAction` | **Request Method** | A **mandatory** parameter. This is the parameter that will allow you to generate a presigned URL for either a download (`GET`) action.
|
| `expiry` | **String** | This is an **optional** parameter. The URL validity time in seconds.
|
| `activeForm` | **String** | This is an **optional** parameter. This param will contain the time after which the URL is valid.
|