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"
}
おしまい。。