--- title: "オブジェクトのダウンロード" url: https://docs.catalyst.zoho.com/ja/sdk/java/v1/cloud-scale/stratus/download-object/ description: "このページでは、バケットからオブジェクトをダウンロードするためのJava 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: "Node.js SDK" url: /ja/sdk/nodejs/v2/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 --- # オブジェクトのダウンロード このセクションのSDKを使用すると、特定のオブジェクトまたはオブジェクトのバージョンを[ダウンロード](https://docs.catalyst.zoho.com/ja/cloud-scale/help/stratus/objects/manage-object/download-object/)できます。以下のコードスニペットで使用されているBucket参照は、[コンポーネントインスタンス](https://docs.catalyst.zoho.com/ja/sdk/java/v1/cloud-scale/stratus/create-bucket-instance/)です。 ダウンロード操作の最初のステップは、バケットから必要なオブジェクトを取得する`GET`操作です。 オブジェクトをダウンロードするには、リクエスターに`READ`アクセス権限が必要です。ただし、バケットの所有者は、必要なレスポンスヘッダーを使用せずにオブジェクトをダウンロードできるよう、ユーザーに`READ`アクセス権限を付与するオプションがあります。 バケットで[バージョニング](https://docs.catalyst.zoho.com/ja/cloud-scale/help/stratus/stratus-config/general-settings/#versioning)が有効な場合、特定のバージョンのオブジェクトをダウンロードするには`versionId`を渡す必要があります。`versionId`が渡されない場合、デフォルトでオブジェクトの最新バージョンがダウンロードされます。 バケットで*バージョニング*が有効にされた後、無効にされた場合、デフォルトでプリンシパルの最初のオブジェクトがダウンロードされます。このオブジェクトの最新バージョンをダウンロードするには、`versionId`パラメータに値「`topVersion`」を渡す必要があります。 #### サンプルコードスニペット **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"); // オブジェクトをローカルマシンにダウンロードする Path path = Path.of("file_path"); // ダウンロードしたオブジェクトを保存するパスを指定する Files.copy(dataStream, path, StandardCopyOption.REPLACE_EXISTING); ``` ### オブジェクトの一部をダウンロード 以下のSDKは`setRange()`メソッドを実装しています。このメソッドを使用すると、オブジェクトの特定のバイト範囲をダウンロードできます。 #### サンプルコードスニペット **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 // ダウンロードオプションを追加する ZCGetObjectOptions options = ZCGetObjectOptions.getInstance(); options.setVersionId("3yt5ehjbjghds3i28"); options.setRange("20-200"); // オブジェクトのバイト単位の開始・終了範囲 InputStream dataStream = bucket.getObject("sam/out/sample.txt", options); // オブジェクトをローカルマシンにダウンロードする Path path = Path.of("file_path"); // ダウンロードしたオブジェクトを保存するパスを指定する Files.copy(dataStream, path, StandardCopyOption.REPLACE_EXISTING); ``` ### Transfer Managerを使用したオブジェクトのダウンロード このセクションでは、**Transfer Manager**技法を使用して、Stratusからローカルシステムに大きなオブジェクトを正常にダウンロードするためのSDKメソッドを説明します。Transfer Managerは、大きなオブジェクトをオブジェクトの開始バイトと終了バイトの範囲を使用して複数のバイト範囲に分割する操作です。オブジェクトの各パーツはストリームとして返され、ローカルシステムにダウンロードされます。 #### Transfer Managerインスタンスの作成 #### サンプルコードスニペット **Package Imports** ```java import com.zc.component.stratus.transfer.ZCTransferManager; ``` ```java ZCTransferManager transferManager= ZCTransferManager.getInstance(bucket); ``` #### イテラブルパーツストリームとしてオブジェクトをダウンロード #### サンプルコードスニペット **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(); // オブジェクトの各パーツをストリームとして取得する Files.copy(data, path, StandardCopyOption.REPLACE_EXISTING); // ストリームをローカルファイルパスに書き込む } ``` #### ダウンロード用のオブジェクトパーツの生成 このSDKメソッドでは、必要な開始バイトと終了バイトの範囲内にあるオブジェクトの一部をダウンロードします。 **使用パラメータ** * `PartSize`:各パーツのサイズ(MB単位) * `key`:オブジェクトの名前を保持します #### サンプルコードスニペット **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"); // パート関数のリストを取得する List<ZCStratusGetObject> parts = transferManager.generatePartDownloaders("sam/out/sample.txt", 100L); // ダウンロードしたストリームを保存するファイルを作成する。 Files.createFile(path); int partNumber = 1; // 各関数をトリガーしてオブジェクトパーツをダウンロードする for (ZCStratusGetObject part : parts) { // オブジェクトパーツをストリームとして取得する InputStream inputStream = part.getPart(); System.out.println("Part "+ partNumber++ + " Downloaded"); // ストリームデータをローカルマシンに書き込む Files.write(path, inputStream.readAllBytes(), StandardOpenOption.APPEND); } ``` ### オブジェクトダウンロード用のPresigned URLの生成 Presigned URLは、認証済みユーザーが非認証ユーザーと共有できる安全なURLです。このURLにより、非認証ユーザーにオブジェクトへのアクセスに対する一時的な認可が提供されます。以下のコードスニペットで使用されているBucket参照は、[コンポーネントインスタンス](https://docs.catalyst.zoho.com/ja/sdk/java/v1/cloud-scale/stratus/create-bucket-instance/)です。 > **Info:** このSDKメソッドを使用するには、**Admin**スコープで初期化する必要があります。この要件の詳細については、こちらの[セクション](https://docs.catalyst.zoho.com/ja/sdk/nodejs/v2/overview/#initialize-sdk-with-scopes)を参照してください。 **使用パラメータ**
パラメータ名 データ型 定義
`key` **String** **必須**パラメータです。オブジェクトの完全な名前と[パス](https://docs.catalyst.zoho.com/ja/cloud-scale/help/stratus/objects/introduction/#path)を保持します。
`URL_ACTION` **Enum** **必須**パラメータです。ダウンロードアクション用のPresigned URLを生成するためのパラメータです。
  • `URL_ACTION.GET`:オブジェクトをダウンロードする場合
`expiry` **String** **任意**パラメータです。URLの有効時間(秒単位)。
  • デフォルト値:**3600秒**
  • 最小値:**30秒**
  • 最大値:**7日**
`activeFrom` **String** **任意**パラメータです。このパラメータには、URLが有効になるまでの時間を指定します。最大値は**7日**です。デフォルトでは、URLは生成されるとすぐにアクティブになります。
#### サンプルコードスニペット **Package Imports** ```java import com.zc.component.stratus.enums.URL_ACTION; import org.json.simple.JSONObject; ``` ```java JSONObject res = bucket.generatePreSignedUrl("sam/out/sample.txt",URL_ACTION.GET); System.out.println(res.get("signature")); ``` ### 有効期限およびアクティブ時間付きPresigned URLの生成 #### サンプルコードスニペット **Package Imports** ```java import com.zc.component.stratus.enums.URL_ACTION; import org.json.simple.JSONObject; ``` ```java JSONObject res = bucket.generatePreSignedUrl("object_name",URL_ACTION.GET, "expiry_in","active_from"); System.out.println(res.get("signature")); ``` **ダウンロード用Presigned URLの生成のレスポンス例** ```json { signature: 'https://sadi-development.zoho stratus.com/_signed/text.txt?organizationId=96862383&stsCredential=96858154-96862383&stsDate=1747896279887&stsExpiresAfter=300&stsSignedHeaders=host&stsSignature=3YBUX1HFSxNQzQJjFrln82AyJsEEuC5T9dsZwWxGyEE' } ``` **Presigned URLを使用したオブジェクトアップロードの使用例スニペット** **Package Imports** ```java import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; import okhttp3.ResponseBody; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; ``` ```java public class Download { public static void main(String[] args) throws IOException { // HTTPリクエストを処理するOkHttpClientインスタンスを作成する OkHttpClient client = new OkHttpClient(); // 署名付きURLでGETリクエストを構築する Request request1 = new Request.Builder() .url("https://sadi-development.zohostratus.com/_signed/sam.txt?organizationId=96862383&stsCredential=96858154-96862383&stsDate=1747905744487&stsExpiresAfter=300&stsSignedHeaders=host&stsSignature=pCjV9xckDOqBCueE_gBeMbp12StddTghBK_8HUwU5k0") // Replace with your actual URL .build(); // リクエストを実行してレスポンスを処理する try (Response response1 = client.newCall(request1).execute()) { // レスポンスが成功したかどうか確認する if (!response1.isSuccessful()) { throw new IOException("Unexpected code " + response1); } // レスポンスボディをInputStreamとして取得する ResponseBody body = response1.body(); if (body != null) { // ファイルをディスクに書き込むストリームを作成する try (InputStream in = body.byteStream(); OutputStream out = new FileOutputStream("file_path")) { // file_pathを実際のパスに置き換えてください // レスポンスデータをチャンクで読み取りファイルに書き込む byte[] buffer = new byte[8192]; int len; while ((len = in.read(buffer)) != -1) { out.write(buffer, 0, len); } // ダウンロード成功後に確認メッセージを表示する System.out.println("Download complete."); } } } catch (IOException e) { // ダウンロード中にエラーが発生した場合にスタックトレースを表示する e.printStackTrace(); } } } ```