このページでは、API を使用してリクエストを送信するユーザーを対象に、Amazon Simple Storage Service(Amazon S3)から Cloud Storage に移行する方法について説明します。
Cloud Storage を初めて使用し、API を直接使用しない場合は、Google Cloud Console を使用した転送の設定と管理を検討してください。Google Cloud Console には、Cloud Storage へのグラフィック インターフェースが用意されています。これを使用して、Amazon S3 から Cloud Storage へのデータ移行など、多くのストレージ タスクをブラウザのみを使用して行えます。
移行の概要
Amazon S3 ユーザーの場合は、Amazon S3 を使用するアプリケーションを Cloud Storage に簡単に移行できます。次の 2 つの移行オプションがあります。
単純な移行: Amazon S3 から移行する場合、Cloud Storage を始めるための最も簡単な方法です。現在 Amazon S3 で使用しているツールやライブラリで必要な変更はわずかで、単純なものです。
完全な移行: Amazon S3 から Cloud Storage への完全な移行では、単純な移行に比べて追加の手順が必要になりますが、複数のプロジェクトや認証用の OAuth 2.0 など、Cloud Storage のすべての機能を使用できます。
単純な移行
Amazon S3 から Cloud Storage への単純な移行では、既存のツールとライブラリを使用して Amazon S3 への認証済み REST リクエストを生成し、認証済みリクエストを Cloud Storage に送信します。Cloud Storage にリクエストを送信するために必要な手順は次のとおりです。
- デフォルトの Google プロジェクトを設定します。
- HMAC キーを取得します。
既存のツールまたはライブラリで次の変更を加えます。
- Cloud Storage XML API リクエスト エンドポイントを使用するようにリクエスト エンドポイントを変更します。
- Amazon Web Services(AWS)のアクセスキーと秘密鍵を、対応する Cloud Storage のアクセス ID と秘密(総称して Cloud Storage HMAC キー)に置き換えます。
x-amz-
ヘッダーで、サポートされている Cloud Storage の値が使用されていることを確認してください。たとえば、x-amz-storage-class
では、使用可能ないずれかの Cloud Storage ストレージ クラスが使用されている必要があります。Cloud Storage XML API を単純な移行のシナリオで使用する場合、
AWS
署名 ID をAuthorization
ヘッダーで使用すると、Cloud Storage ではx-amz-*
ヘッダーと Amazon S3 ACL XML 構文がリクエストに存在するものと想定します。Cloud Storage は、ヘッダー表にリストされているものなど、x-goog-*
と同等のものを持つx-amz-*
ヘッダーを処理します。
これらの変更により、既存のツールとライブラリの使用を開始し、キー付きのハッシュ メッセージ認証コード(HMAC)リクエストを Cloud Storage に送信できます。
たとえば、次のサンプルは、Amazon S3 SDK を使用して Cloud Storage バケットをリストする方法を示しています。
Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
ほとんどのアクションは Amazon S3 V2 SDK を利用して実行できますが、オブジェクトの一覧表示は Amazon S3 V1 の list objects メソッドを使用してのみ実行できます。次のサンプルは、そのようなオブジェクトの一覧表示を示しています。
Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
デフォルトのプロジェクトの設定
Cloud Storage を単純な移行シナリオで使用するには、デフォルトのプロジェクトを設定することをおすすめします。デフォルトのプロジェクトを設定すると、GET
サービスや PUT
バケットなどのオペレーションに使用するプロジェクトが Cloud Storage に指示されます。デフォルトのプロジェクトを設定しない場合は、特定のリクエストでプロジェクト ヘッダーを指定する必要があります。
デフォルトのプロジェクトを設定するには:
- Google Cloud Console で、[Cloud Storage の設定] ページを開きます。
- [相互運用性] タブを選択します。
[相互運用アクセスのデフォルト プロジェクト] にある [PROJECT-ID をデフォルト プロジェクトに設定する] をクリックします。
プロジェクトがすでにデフォルトになっている場合は、[PROJECT-ID が相互運用アクセスのデフォルト プロジェクトです] と表示されます。
これで、このプロジェクトがデフォルトのプロジェクトになりました。別のプロジェクトを選択して次の手順を行うことで、いつでもデフォルトのプロジェクトを変更できます。
別の方法: プロジェクト ヘッダーを指定する
デフォルト プロジェクトを設定したうえで、あるいは別の方法として、x-amz-project-id
ヘッダーを個々のリクエストで使用してプロジェクトを指定することができます。
x-amz-project-id
を使用するリクエストでは、デフォルト プロジェクトが設定されていても、ヘッダーで指定されたプロジェクトが使用されます。
x-amz-project-id
ヘッダーを使用すると、次の場合に便利です。
- 複数のプロジェクトで作業している場合。
- サービス アカウントが親プロジェクトをデフォルト プロジェクトとして使用するため、リクエストが別のプロジェクトに関連したサービス アカウントで行われる場合。
Amazon S3 にはプロジェクトがないため、使用するツールやクライアント ライブラリによっては、x-amz-project-id
ヘッダーを指定できない場合があります。この場合、デフォルト プロジェクトを設定する必要があります。
単純な移行での HMAC キーの使用
単純な移行のシナリオで Cloud Storage XML API を使用するには、認証に Cloud Storage のハッシュベースのメッセージ認証コード(HMAC)キーを使用します。通常は、サービス アカウントに関連付けられた HMAC キーを作成する必要がありますが、ユーザー アカウントに関連付けられたものを使用することもできます。
単純な移行のシナリオでの認証
認証ヘッダー
認証が必要な単純な移行のシナリオのオペレーションでは、Amazon S3 にリクエストを送信するときと同じように、Authorization
リクエスト ヘッダーを含めます。Amazon S3 リクエストの Authorization
ヘッダーの構文は次のとおりです。
Authorization: AWS4-HMAC-SHA256 Credential=AWS-ACCESS-KEY/CREDENTIAL_SCOPE, SignedHeaders=SIGNED_HEADERS, Signature=SIGNATURE
単純な移行のシナリオでは、Google HMAC アクセス ID を使用するようにヘッダーを変更し、付けた Signature
が確実に Google HMAC 秘密鍵で計算されるようにします。
Authorization: ALGORITHM Credential=GOOG-ACCESS-ID/CREDENTIAL_SCOPE, SignedHeaders=SIGNED_HEADERS, Signature=SIGNATURE
Authorization
ヘッダーの各要素は次のとおりです。
ALGORITHM: 使用した署名アルゴリズムとバージョン。
AWS4-HMAC-SHA256
を指定すると、HMAC V4 署名を使用し、x-amz-*
ヘッダーを送信することになります。また、GOOG4-HMAC-SHA256
を指定した場合、HMAC V4 署名を使用し、x-goog-*
ヘッダーを送信することになります。GOOG-ACCESS-ID: アクセス ID は、リクエストを作成して署名するエンティティを識別されます。単純な移行では、Amazon S3 にアクセスするために使用する Amazon Web Service(AWS)のアクセスキー ID を、Google HMAC アクセス ID に置き換えます。Google の HMAC アクセス ID の先頭は
GOOG
で始まります。CREDENTIAL_SCOPE: 署名で定義されている認証情報スコープ。単純な移行では、ALGORITHM 値に
AWS4-HMAC-SHA256
を使用している場合は認証情報スコープを変更する必要がありません。SIGNED_HEADERS: リクエストに署名するために含めなければならないヘッダー名をセミコロンで区切ったリスト。すべてのヘッダーは小文字で表し文字コードで並べ替える必要があります。
Amazon S3 スタイルの署名付きヘッダー文字列の例は次のとおりです。
content-type;host;x-amz-date
単純な移行では、署名付きヘッダー文字列を変更する必要はありません。
SIGNATURE: リクエストの認証を可能にする署名。簡単な移行では、AWS アクセスキー情報を同等の Google HMAC キー情報に置き換えます。
サンプルの認証リクエスト
次の例では、/europe/france/paris.jpg というオブジェクトを my-travel-maps というバケットにアップロードし、定義済み ACL public-read
を適用して、審査担当者用にカスタム メタデータ ヘッダーを定義します。Amazon S3 のバケットに対するリクエストを次に示します。
PUT europe/france/paris.jpg HTTP/1.1 Host: my-travel-maps.s3.amazonaws.com Date: Mon, 11 Mar 2019 23:46:19 GMT Content-Length: 888814 Content-Type: image/jpg x-amz-acl: public-read x-amz-date:20190311T192918Z x-amz-meta-reviewer: joe,jane Authorization: AWS4-HMAC-SHA256 Credential=AWS-ACCESS-KEY/20190311/us-east-1/s3/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-acl;x-amz-date;x-amz-meta-reviewer, Signature=SIGNATURE
Cloud Storage のバケットに対するリクエストを次に示します。
PUT europe/france/paris.jpg HTTP/1.1 Host: my-travel-maps.storage.googleapis.com Date: Mon, 11 Mar 2019 23:46:19 GMT Content-Length: 888814 Content-Type: image/jpg x-amz-acl: public-read x-amz-date:20190311T192918Z x-amz-meta-reviewer: joe,jane Authorization: AWS4-HMAC-SHA256 Credential=GOOG-ACCESS-ID/20190311/us-east-1/s3/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-acl;x-amz-date;x-amz-meta-reviewer, Signature=SIGNATURE
このリクエストによって作成される正規リクエストは次のとおりです。
PUT /europe/france/paris.jpg content-length:888814 content-type:image/jpg host:my-travel-maps.storage.googleapis.com x-amz-acl:public-read x-amz-date:20190311T192918Z x-amz-meta-reviewer:joe,jane content-length,content-type,host,x-amz-acl,x-amz-date,x-amz-meta-reviewer 82e3da8b3f35989512e8d428add7eca73ab0e5f36586e66fbad8e1051343cbd2
このリクエストに対して作成される署名対象文字列は次のとおりです。
AWS4-HMAC-SHA256 20190311T192918Z 20190311/us-east-1/s3/aws4_request 73918a5ff373d7a03e406fbf9ea35675396b06fca2af76c27a5c451fa783ef65
このリクエストでは、Content-MD5 ヘッダーを指定しなかったため、メッセージの 2 行目に空文字列が表示されています。
単純な移行シナリオでのアクセス制御
単純な移行をサポートするために、Cloud Storage では Amazon S3 によって生成される ACL を使用できます。単純な移行のシナリオでは、AWS
を署名 ID として使用することで、Amazon S3 ACL XML 構文を使用して、ACL 構文に対応するよう Cloud Storage に指示します。使用する Amazon S3 ACL が Cloud Storage ACL モデルにマッピングされることを確認する必要があります。たとえば、ツールやライブラリが、Amazon S3 の ACL 構文を使用してバケットの WRITE
権限を付与する場合、バケットの READ
権限も付与する必要があります。これは、Cloud Storage の権限が入れ子構造であるためです。Cloud Storage 構文を使用して WRITE
権限を付与するときには、WRITE
と READ
の両方の権限を指定する必要はありません。
Cloud Storage は、次のシナリオで Amazon S3 ACL 構文をサポートします。
- Cloud Storage に対して ACL を取得させるリクエスト(
GET
Object やGET
Bucket リクエストなど)で、Cloud Storage は Amazon S3 ACL 構文を返します。 - Cloud Storage に対して ACL を適用させるリクエスト(
PUT
Object やPUT
Bucket リクエストなど)で、Cloud Storage は Amazon S3 ACL 構文を受け取ることを予期します。
単純な移行のシナリオの Authorization
ヘッダーは、署名 ID として AWS
を使用しますが、Google アクセス ID もあわせて使用します。
Authorization: AWS4-HMAC-SHA256 Credential=GOOG-ACCESS-ID/CREDENTIAL_SCOPE, SignedHeaders=SIGNED_HEADERS, Signature=SIGNATURE
次の例は、オブジェクトの ACL を返す Cloud Storage に対する GET
リクエストを示しています。
GET europe/france/paris.jpg?acl HTTP/1.1 Host: my-travel-maps.storage.googleapis.com Date: Thu, 21 Feb 2019 23:50:10 GMT Content-Type: application/xml X-Amz-Date: 20190221T235010Z Authorization: AWS4-HMAC-SHA256 Credential=GOOGMC5PDPA5JLZYQMHQHRAX/20190221/region/s3/aws4_request, SignedHeaders=host;x-amz-date, Signature=29088b1d6dfeb2549f6ff67bc3744abb7e45475f0ad60400485805415bbfc534
リクエストのレスポンスには、Amazon S3 ACL 構文を使用する ACL が含まれています。
<?xml version='1.0' encoding='UTF-8'?> <AccessControlPolicy> <Owner> <ID>00b4903a972faa8bcce9382686e9129676f1cd6e5def1f5663affc2ba4652490 </ID> <DisplayName>OwnerName</DisplayName> </Owner> <AccessControlList> <Grant> <Grantee xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:type='CanonicalUser'> <ID>00b4903a972faa8bcce9382686e9129676f1cd6e5def1f5663affc2ba4652490</ID> <DisplayName>UserName</DisplayName> </Grantee> <Permission>FULL_CONTROL</Permission> </Grant> </AccessControlList> </AccessControlPolicy>
次の例は、オブジェクトの ACL を設定する Cloud Storage に対する PUT
リクエストを示しています。次の例は、Amazon S3 ACL 構文を使用するリクエストの本文を示しています。
PUT europe/france/paris.jpg?acl HTTP/1.1 Host: my-travel-maps.storage.googleapis.com Date: Thu, 21 Feb 2019 23:50:10 GMT Content-Type: application/xml Content-Length: 337 X-Amz-Date: 20190221T235010Z Authorization: AWS4-HMAC-SHA256 Credential=GOOGMC5PDPA5JLZYQMHQHRAX/20190221/region/s3/aws4_request, SignedHeaders=host;x-amz-date, Signature=29088b1d6dfeb2549f6ff67bc3744abb7e45475f0ad60400485805415bbfc534 <?xml version='1.0' encoding='utf-8'?> <AccessControlPolicy> <AccessControlList> <Grant> <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="AmazonCustomerByEmail"> <EmailAddress>jane@gmail.com</EmailAddress> </Grantee> <Permission>FULL_CONTROL</Permission> </Grant> </AccessControlList> </AccessControlPolicy>
なお、単純な移行のシナリオでは、Authorization
ヘッダーで GOOG1
署名 ID を使用することもできます。この場合、Cloud Storage ACL 構文を使用し、すべてのヘッダーが Google ヘッダーの x-goog-*
であることを確認する必要があります。以上の方法も可能ですが、Cloud Storage のすべての利点を実現するためには、次の説明に沿って完全な移行を行うようおすすめします。
完全な移行
Amazon S3 から Cloud Storage に完全に移行すると、OAuth 2.0 認証を含む Cloud Storage のすべての機能を利用できます。OAuth 2.0 は、アプリケーションに直接暗号化署名の実行を要求する代わりに SSL を利用してセキュリティを実装できる、より容易な方法です。OAuth では、アプリケーションがユーザーの Google アカウントに関連付けられているデータへのアクセスを要求することが可能であり、読み取り専用、読み取りと書き込み、フル コントロールなどのいくつかのレベルにアクセス範囲を設定できます。詳しくは、OAuth 2.0 認証をご覧ください。
Amazon S3 から Cloud Storage に完全に移行するには、次の変更を行います。
- 既存の
x-amz-*
ヘッダーを対応するx-goog-*
ヘッダーに変更します。 - AWS アクセス制御リスト(ACL)XML を対応する Cloud Storage ACL XML に変更します(アクセス制御リストの作成と管理をご覧ください)。
- リクエスト内の x-goog-project-id ヘッダーを設定します。
OAuth 2.0 認証の説明に沿って、OAuth 2.0 を使用できるように設定します。最初にアプリケーション(リクエストの発行元)を Google に登録します。OAuth 2.0 を使用すると、
Authorization
ヘッダーが次のように表示されます。Authorization: Bearer OAUTH2_TOKEN
完全な移行でのアクセス制御
このセクションでは、Amazon S3 から Cloud Storage への移行に役立ついくつかのアクセス制御の例を紹介します。Cloud Storage でのアクセス制御の概要については、アクセス制御をご覧ください。
Cloud Storage では、バケットやオブジェクトに ACL を適用するための方法がいくつかあります(アクセス制御リストの作成と管理をご覧ください)。ACL を指定する方法のうち 2 つは、Amazon S3 の方法と似ています。
- 特定の範囲の ACL を適用するための
acl
クエリ文字列パラメータ。 x-goog-acl
リクエスト ヘッダーを使用すると、定義済み ACL(ACL テンプレート)を適用できます。
acl クエリ文字列パラメータの使用
Cloud Storage リクエストの acl
文字列パラメータは、Amazon S3 リクエストで使用する場合とまったく同じ方法で使用できます。acl
パラメータを PUT
メソッドと組み合わせて使用し、ACL を既存のオブジェクト、既存のバケット、作成中のバケットに適用します。PUT
リクエストで acl
クエリ文字列パラメータを使用する場合は、Cloud Storage ACL 構文を使用して、リクエストの本文に XML ドキュメントを添付する必要があります。この XML ドキュメントに、バケットまたはオブジェクトに適用する個別の ACL エントリを記述します。
次の例は、acl
クエリ文字列パラメータを使用する Amazon S3 に対する PUT
リクエストを示しています。ACL は、リクエストの本文で送信される XML ドキュメント内に定義されます。この PUT
リクエストは my-travel-maps
というバケット内にある europe/france/paris.jpg
というオブジェクトの ACL を変更します。この ACL は jane@gmail.com に FULL_CONTROL
権限を付与します。
PUT europe/france/paris.jpg?acl HTTP/1.1 Host: my-travel-maps.s3.amazonaws.com Date: Wed, 06 Nov 2013 19:28:18 GMT Content-Length: 598 Content-Type: application/xml Authorization: AWS4-HMAC-SHA256 Credential=AWS-ACCESS-KEY/20131106/us-east-1/s3/aws4_request, SignedHeaders=content-length;content-type;date;host, Signature=4c45f25bb679fdab0de5a287625d6a143414728d93c9aeb9f4cc91c33a1c45fg <?xml version='1.0' encoding='utf-8'?> <AccessControlPolicy> <Owner> <ID>5a6557ba40f7c86496ffceae789fcd888abc1b62a7149873a0fe12c0f60a7d95</ID> <DisplayName>ownerEmail@example.com</DisplayName> </Owner> <AccessControlList> <Grant> <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CanonicalUser"> <ID>fd447671d60b979f78ee6fcec7b22afc80e6b26a4db16eed01afb8064047949b</ID> <DisplayName>jane@gmail.com</DisplayName> </Grantee> <Permission>FULL_CONTROL</Permission> </Grant> </AccessControlList> </AccessControlPolicy>
次に、Cloud Storage に対する同じリクエストを示します。
PUT europe/france/paris.jpg?acl HTTP/1.1 Host: my-travel-maps.storage.googleapis.com Date: Wed, 06 Nov 2013 19:37:33 GMT Content-Length: 268 Content-Type: application/xml Authorization: Bearer ya29.AHES6ZRVmB7fkLtd1XTmq6mo0S1wqZZi3-Lh_s-6Uw7p8vtgSwg <?xml version='1.0' encoding='utf-8'?> <AccessControlList> <Entries> <Entry> <Permission>FULL_CONTROL</Permission> <Scope type="UserByEmail"> <EmailAddress>jane@gmail.com</EmailAddress> </Scope> </Entry> </Entries> </AccessControlList>
Cloud Storage では、ACL XML ドキュメント内に <Owner/>
要素は必要ありません。詳しくは、バケットとオブジェクトの所有権をご覧ください。
また、GET
メソッドで acl
クエリ文字列パラメータを使用して、バケットやオブジェクトの ACL を取得することもできます。ACL は、レスポンスの本文に添付された XML ドキュメントに記載されます。オブジェクトまたはバケットの ACL を適用したり取得したりするには、FULL_CONTROL
権限が必要です。
拡張リクエスト ヘッダーを使用した ACL の適用
Cloud Storage リクエストで x-goog-acl
ヘッダーを使用すると、Amazon S3 リクエストで x-amz-acl
ヘッダーを使用する場合とまったく同じ方法で事前に定義された ACL をバケットやオブジェクトに適用できます。通常は、バケットやオブジェクトの作成時またはアップロード時に x-goog-acl
(x-amz-acl
)ヘッダーを使用して、定義済み ACL を適用します。Cloud Storage の定義済み ACL は、Amazon S3 Canned ACL と同様、private、public-read、public-read-write などを含んでいます。Cloud Storage の定義済み ACL のリストについては、定義済み ACL をご覧ください。
次の例は、europe/france/paris.jpg
という名前のオブジェクトに public-read
ACL を適用する PUT
Object リクエストを示しています。このオブジェクトは、Amazon S3 では my-travel-maps
という名前のバケットにアップロードされています。
PUT europe/france/paris.jpg HTTP/1.1 Host: my-travel-maps.s3.amazonaws.com Date: Wed, 06 Nov 2013 20:48:42 GMT Content-Length: 888814 Content-Type: image/jpg x-amz-acl: public-read Authorization: AWS4-HMAC-SHA256 Credential=AWS-ACCESS-KEY/20131106/us-east-1/s3/aws4_request, SignedHeaders=content-length;content-type;date;host, Signature=808150c37dbd1b425b2398421d6fc3dd6d4942dfaae9e519fd5835aa62fd62ab <888814 bytes in entity body>
次に、Cloud Storage に対する同じリクエストを示します。
PUT europe/france/paris.jpg HTTP/1.1 Host: my-travel-maps.storage.googleapis.com Date: Wed, 06 Nov 2013 20:49:57 GMT Content-Length: 888814 Content-Type: image/jpg x-goog-acl: public-read Authorization: Bearer ya29.AHES6ZRVmB7fkLtd1XTmq6mo0S1wqZZi3-Lh_s-6Uw7p8vtgSwg <888814 bytes in entity body>
また、x-goog-acl
ヘッダーを使用して既存のバケットやオブジェクトに定義済み ACL を適用することもできます。その場合は、リクエストに acl
クエリ文字列パラメータを指定し、XML ドキュメントは含めません。定義済みの ACL を別のものに変更する場合や、カスタム ACL を定義済み ACL に更新する場合は、既存のオブジェクトやバケットに定義済み ACL を適用すると便利です。たとえば、次の PUT
Object リクエストでは、定義済み ACL private
を my-travel-maps
というバケット内の europe/france/paris.jpg
というオブジェクトに適用しています。
PUT europe/france/paris.jpg?acl HTTP/1.1 Host: my-travel-maps.storage.googleapis.com Date: Wed, 06 Nov 2013 00:26:36 GMT Content-Length: 0 x-goog-acl: private Authorization: Bearer ya29.AHES6ZRVmB7fkLtd1XTmq6mo0S1wqZZi3-Lh_s-6Uw7p8vtgSwg <empty entity body>
ACL の管理については、アクセス制御リストの作成と管理をご覧ください。
Amazon S3 から Cloud Storage リクエスト メソッドへの移行
Cloud Storage では、バケットのデータの読み取りと書き込みのために、Amazon S3 でサポートされるメソッドと同じ標準の HTTP リクエスト メソッドがサポートされています。そのため、Amazon S3 で使用中のツールとライブラリの多くは Cloud Storage で同様に使用できます。Cloud Storage では、次のリクエスト メソッドがサポートされています。
GET
のサービス リクエスト。PUT
、GET
、DELETE
を含むバケット リクエスト。GET
、POST
、PUT
、HEAD
、DELETE
を含むオブジェクト リクエスト。
詳しくは、XML API リファレンス メソッドをご覧ください。Cloud Storage にリクエストを送信する場合、可能であれば、適切な Cloud Storage 構文を使用するようにリクエストの本文を変更する必要があります。たとえば、バケットのライフサイクル構成を作成するときには、Cloud Storage ライフサイクル XML を使用します。これは、Amazon S3 ライフサイクル XML とは異なります。
Cloud Storage XML API と Amazon S3 で異なる点と、推奨される Cloud Storage による代替手段については以下をご覧ください。
Amazon S3 の機能 | Cloud Storage XML API の機能 |
---|---|
マルチパート アップロード。 POST /OBJECT_NAME、 PUT /OBJECT_NAME |
Cloud Storage XML API では、一連のコンポーネント オブジェクトをアップロードし、各コンポーネントの個別のアップロードを実行できます。これらは、オブジェクトを合成して 1 つのオブジェクトにできます。 注: JSON API にはマルチパート アップロード機能がありますが、この機能は、オブジェクト データとともにメタデータを送信するために使用するものです。S3 のマルチパート アップロード機能とは異なります。 |
GET/POST バケットクエリ文字列パラメータ:
|
別の方法:
|
複数のオブジェクトの削除。 POST /?delete |
gsutil rm コマンドを使用して、複数のオブジェクトを簡単に削除できます。rm コマンドは並列削除(マルチスレッドやマルチ処理)を実行するための「-m」オプションをサポートします。 また、JSON API は、バッチ リクエストの送信をサポートしているため、クライアントが行う HTTP 接続の数を減らせます。 |
Amazon S3 から Cloud Storage ヘッダーへの移行
Cloud Storage は、複数の標準の HTTP ヘッダーに加えて、カスタム(拡張)HTTP ヘッダーを使用します。Amazon S3 から Cloud Storage に移行する場合は、カスタム Amazon S3 ヘッダーを、下の表に示す同等の Cloud Storage カスタム ヘッダーまたは類似の機能に変換できます。
多くの Amazon S3 ヘッダーでは、x-amz
接頭辞を x-goog
に置き換えるだけですみます。
Amazon S3 ヘッダー | Cloud Storage ヘッダー |
---|---|
x-amz-storage-class |
x-goog-storage-class |
x-amz-acl |
x-goog-acl |
x-amz-date |
x-goog-date |
x-amz-meta-* |
x-goog-meta-* |
x-amz-copy-source |
x-goog-copy-source |
x-amz-metadata-directive |
x-goog-metadata-directive |
x-amz-copy-source-if-match |
x-goog-copy-source-if-match |
x-amz-copy-source-if-none-match |
x-goog-copy-source-if-none-match |
x-amz-copy-source-if-unmodified-since |
x-goog-copy-source-if-unmodified-since |
x-amz-copy-source-if-modified-since |
x-goog-copy-source-if-modified-since |
Cloud Storage では、一部のヘッダーが異なるか、使用されていません。
Amazon S3 ヘッダー | Cloud Storage ヘッダー |
---|---|
x-amz-server-side-encryption |
不要。Cloud Storage は、ディスクに書き込まれる前に、すべてのデータを自動的に暗号化します。詳しくは、暗号化をご覧ください。 |
x-amz-grant-* |
x-goog-acl と定義済みの ACL 値。 |
x-amz-mfa |
OAuth 2.0 認証を使用します。 |
x-amz-website-redirect-location 、x-amz-copy-source-range |
なし |
Cloud Storage ヘッダーについては、XML API の HTTP ヘッダーとクエリ文字列パラメータをご覧ください。
Amazon S3 と XML API の互換性に関するサポート
XML API の相互運用性については、google-cloud-storage タグを使用してスタック オーバーフローを参照してください。ディスカッション フォーラムと通知の登録に関する詳細については、サポートの利用ページをご覧ください。