--- title: "Objectのダウンロード" url: https://docs.catalyst.zoho.com/ja/sdk/nodejs/v2/cloud-scale/stratus/download-object/ description: "このページでは、BucketからオブジェクトをダウンロードするためのNode.js SDKメソッドを紹介します。" last_updated: 2026-03-30T08:10:30Z service: Cloud Scale type: general related_links: - name: "Stratus Component Help Documentation" url: /ja/cloud-scale/help/stratus/introduction - name: "Download Object Help Documentation" url: /ja/cloud-scale/help/stratus/objects/manage-object/download-object/ - name: "Java SDK" url: /ja/sdk/java/v1/cloud-scale/stratus/download-object/ - name: "Python SDK" url: /ja/sdk/python/v1/cloud-scale/stratus/download-object/ - name: "Web SDK" url: /ja/sdk/web/v4/cloud-scale/stratus/overview/ - name: "iOS SDK" url: /ja/sdk/ios/v2/cloud-scale/stratus/download-object/ - name: "Android SDK" url: /ja/sdk/android/v2/cloud-scale/stratus/download-object/ - name: "Flutter SDK" url: /ja/sdk/flutter/v2/cloud-scale/stratus/download-object/ - name: "REST API" url: /ja/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets --- # Objectのダウンロード ### Objectのダウンロード このセクションのSDKを使用すると、[特定のオブジェクト](https://docs.catalyst.zoho.com/ja/cloud-scale/help/stratus/objects/manage-object/download-object/)、複数のオブジェクト、またはオブジェクトのバージョンをダウンロードできます。以下のコードスニペットで使用されているBucket参照は、[コンポーネントインスタンス](https://docs.catalyst.zoho.com/ja/sdk/nodejs/v2/cloud-scale/stratus/create-bucket-instance/)です。 ダウンロード操作の最初のステップは、Bucketから必要なオブジェクトを取得する`GET`操作です。 オブジェクトをダウンロードするには、リクエスターに`READ`アクセス権限が必要です。ただし、Bucketの所有者は、必要なレスポンスヘッダーを使用せずにオブジェクトをダウンロードできるように、ユーザーに`READ`アクセス権限を付与するオプションがあります。 Bucketで[Versioning](https://docs.catalyst.zoho.com/ja/cloud-scale/help/stratus/stratus-config/general-settings/#versioning)が有効な場合、特定のバージョンのオブジェクトをダウンロードするには`versionId`を渡す必要があります。`versionId`を渡さない場合、デフォルトで最新バージョンのオブジェクトがダウンロードされます。 Bucketで*Versioning*が有効にされた後、無効にされた場合。デフォルトでは、プリンシパルの最初のオブジェクトがダウンロードされます。このオブジェクトの最新バージョンをダウンロードするには、`versionId`パラメータに値「`topVersion`」を渡す必要があります。 ```javascript const res = await bucket.getObject("sam/out/sample.txt"); // オブジェクトをローカルマシンにダウンロードする const files = fs.createWriteStream('filePath'); res.on('data', (data) => { files.write(data) }); ``` ### Objectの一部をダウンロード 以下のSDKメソッドは、`range`パラメータとともに使用されます。rangeパラメータを使用すると、オブジェクトの特定の`range`のバイトをダウンロードできます。 ```javascript const options = { 'versionId': 'djkshr8374yiuhf48', // 指定されたversionIdでオブジェクトをダウンロード 'range': '0-2000' // オブジェクトの開始・終了範囲(バイト単位) } const res = await bucket.getObject("sam/out/sample.txt", options); // オブジェクトをローカルマシンにダウンロードする const files = fs.createWriteStream('filePath'); res.on('data', (data) => { files.write(data) }); ``` ### Transfer Managerを使用したObjectのダウンロード このセクションでは、**Transfer Manager**技術を使用して、Stratusからローカルシステムに大きなオブジェクトを正常にダウンロードするためのSDKメソッドについて説明します。Transfer Managerは、大きなオブジェクトをオブジェクトの開始バイトと終了バイトの範囲を使用して複数のバイト範囲に分割する操作です。オブジェクトの各パートはストリームとして返され、ローカルシステムにダウンロードされます。 **以下のパッケージがインポートされていることを確認してください** ```javascript const { TransferManager } = require('zcatalyst-sdk-node/lib/stratus'); ``` #### Transfer Managerインスタンスの作成 ```javascript const transferManager = new TransferManager(bucket); // Transfer Managerインスタンスを作成 ``` #### イテラブルパートストリームとしてのObjectダウンロード ```javascript const partSize=50; const getObjectRes = await transferManager.getIterableObject("sam/out/sample.txt",partSize); // オブジェクトをローカルマシンにダウンロードする const file = fs.createWriteStream('filePath'); // ファイル書き込みストリームを作成 for await (const chunk of getObjectRes) { file.write(chunk); } ``` #### ダウンロード用のObjectパーツの生成 このSDKメソッドでは、必要な開始バイトと終了バイトの範囲に該当するオブジェクトの一部をダウンロードします。 ```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(); // オブジェクトの一部をストリームとして返す // ストリームを処理する } ``` ### Objectダウンロード用の署名付きURLの生成 署名付きURLは、認証済みユーザーが非認証ユーザーに共有できる安全なURLです。このURLは、非認証ユーザーにオブジェクトにアクセスするための一時的な認可を提供します。以下のコードスニペットで使用されているBucket参照は、[コンポーネントインスタンス](https://docs.catalyst.zoho.com/ja/sdk/nodejs/v2/cloud-scale/stratus/create-bucket-instance/)です。 > **Info:** このSDKメソッドを使用するには、**Admin**スコープで初期化する必要があります。この要件の詳細については、この[セクション](https://docs.catalyst.zoho.com/ja/sdk/nodejs/v2/overview/#initialize-sdk-with-scopes)をご覧ください。 **使用パラメータ**
Parameter Name Data Type Definition
`key` **String** **必須**パラメータです。オブジェクトの完全な名前と[パス](https://docs.catalyst.zoho.com/ja/cloud-scale/help/stratus/objects/introduction/#path)を保持します。
`urlAction` **Request Method** **必須**パラメータです。ダウンロード(GET)アクション用の署名付きURLを生成するためのパラメータです。
  • `GET`: オブジェクトをダウンロードするため
`expiry` **String** **任意**パラメータです。URLの有効時間(秒単位)。
  • デフォルト値: **3600秒**
  • 最小値: **30秒**
  • 最大値: **7日**
`activeFrom` **String** **任意**パラメータです。URLが有効になる時間を含みます。最大値は**7日**です。デフォルトでは、URLは生成されるとすぐに有効になります。
```javascript const signedURLRes = await bucket.generatePreSignedUrl("sam/out/sample.txt", 'GET', { 'expiryIn': 100, // 有効期限(秒) 'activeFrom':'12334454327', // 指定された日付にURLを有効化 'versionId': '746398diij94839' }); console.log(signedURLRes); ``` **ダウンロード用署名付きURLの生成レスポンス例** ```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" } ``` **署名付きURLを使用したObjectダウンロードのスニペット例** > **Info:** この例は、**Axios**リクエストハンドラーパッケージを使用して示されています。 ```javascript const axios = require('axios'); const fs = require('fs'); // ファイルの実際の署名付きURLに置き換えてください。 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 { // ファイルをストリームとしてダウンロードするGETリクエストを送信する const response = await axios.get(url, { responseType: 'stream' }); // ファイルをローカルに保存するための書き込みストリームを作成する const file = fs.createWriteStream('file_path'); // 希望の出力パスに置き換えてください // レスポンスストリームをファイルストリームにパイプする response.data.pipe(file); // ファイルのダウンロード完了時に通知する file.on('finish', () => { console.log('File downloaded successfully'); }); // 書き込み中のエラーを処理する file.on('error', (err) => { console.error('Error writing file:', err); }); } catch (err) { console.error('Error downloading file:', err); } })(); ```