LoginSignup
0
0

[Cloud Storage API(V2)] Javaでオブジェクトをダウンロードする

Posted at

Cloud Storage API V2(Java)を使用して、
Cloud Storageのオブジェクトをダウンロードする方法
についてご紹介します。

APIを利用する環境の準備から始める場合や、コードを実行する際は、
⧉[Cloud Storage API(V2)] JavaでCloud Storageを使う
を参照ください。

No 目次
1 オブジェクトをダウンロード
1 スコープ
2 実行
3 レスポンスの内容
2 メタデータをダウンロード
1 スコープ
2 実行
3 レスポンスの内容

1. オブジェクトをダウンロード

指定したオブジェクトをダウンロードします。

1.1. スコープ

このAPIを実行するには、以下のいずれかのスコープを指定してください。

StorageScopes.CLOUD_PLATFORM
StorageScopes.CLOUD_PLATFORM_READ_ONLY
StorageScopes.DEVSTORAGE_FULL_CONTROL
StorageScopes.DEVSTORAGE_READ_ONLY
StorageScopes.DEVSTORAGE_READ_WRITE

⧉[Cloud Storage API(V2)] JavaでCloud Storageを使う(2.2 Storageインスタンスを取得)
でスコープを指定してください。

1.2. 実行

public static void main(String[] args) throws Exception{
    Storage storage = getStorage();
    Storage.Objects objects = storage.objects();
    
    Storage.Objects.Get get = objects.get("バケットID","オブジェクト名");
    
    try(OutputStream outputStream = new FileOutputStream(new File("ファイルパス"), false)){
        get.executeMediaAndDownloadTo(outputStream);
    }
}

1.2.1. HTTPリクエスト

GET: https://storage.googleapis.com/storage/v1/b/{バケットID}/o/{オブジェクト名}
が実行されます。

1.2.2. クエリパラメータ

alt=media

1.3. レスポンスの内容

指定したファイルパスにオブジェクトがダウンロードされます。

2. メタデータをダウンロード

指定したオブジェクトのメタデータをJSON形式でダウンロードします。

2.1. スコープ

このAPIを実行するには、以下のいずれかのスコープを指定してください。

StorageScopes.CLOUD_PLATFORM
StorageScopes.CLOUD_PLATFORM_READ_ONLY
StorageScopes.DEVSTORAGE_FULL_CONTROL
StorageScopes.DEVSTORAGE_READ_ONLY
StorageScopes.DEVSTORAGE_READ_WRITE

⧉[Cloud Storage API(V2)] JavaでCloud Storageを使う(2.2 Storageインスタンスを取得)
でスコープを指定してください。

2.2. 実行

public static void main(String[] args) throws Exception{
    Storage.Objects objects = storage.objects();
    
    Storage.Objects.Get get = objects.get("バケットID","オブジェクト名");
    
    try(OutputStream outputStream = new FileOutputStream(new File("ファイルパス"), false)){
       get.executeAndDownloadTo(outputStream);
    }
}

2.2.1. HTTPリクエスト

GET: https://storage.googleapis.com/storage/v1/b/{バケットID}/o/{オブジェクト名}
が実行されます。

2.2.2. クエリパラメータ

クエリパラメータはありません。

2.3. レスポンスの内容

JSONファイルがダウンロードされます。

キー 説明
id String オブジェクトID
kind String リソースの種類
固定文字列:"storage#object"
name String オブジェクトの名前
bucket String バケット名
size BigInteger データサイズ(バイト単位)
generation Long 世代番号(generation)
metageneration Long メタ世代番号(metageneration)
etag String オブジェクトのHTTPエンティティタグ
mediaLink String オブジェクトのデータをダウンロードするためのURL
selfLink String オブジェクトのURL
contentType String ContentオブジェクトデータのContent-Type
md5Hash String データのMD5ハッシュ値
crc32c String オブジェクトのcrc32cハッシュ値
storageClass String オブジェクトのストレージクラス
timeCreated DateTime オブジェクトの作成時刻
timeStorageClassUpdated DateTime オブジェクトのストレージクラスが最後に変更された時刻
updated DateTime オブジェクトのメタデータ変更時刻

サンプル

{
  "kind": "storage#object",
  "id": "XXX/YYY/1714228298819711",
  "selfLink": "https://www.googleapis.com/storage/v1/b/XXX/o/YYY",
  "mediaLink": "https://storage.googleapis.com/download/storage/v1/b/XXX/o/YYY?generation=1714228298819711&alt=media",
  "name": "YYY",
  "bucket": "XXX",
  "generation": "387971398b98819711",
  "metageneration": "1",
  "contentType": "text/tab-separated-values",
  "storageClass": "STANDARD",
  "size": "3124",
  "md5Hash": "qi3YtM80qPZ+BLDKAD0w==",
  "crc32c": "mvelbkjA==",
  "etag": "CP/QDBLKKJAoUDEAE=",
  "timeCreated": "2024-04-27T14:31:38.880Z",
  "updated": "2024-04-27T14:31:38.880Z",
  "timeStorageClassUpdated": "2024-04-27T14:31:38.880Z"
}


おしまい。。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0