Cloud Storage API

概要

Cloud Storage には、XML API と JSON API の 2 つの API が用意されています。gsutil では、両方の API を操作できます。デフォルトでは、バージョン 4.0 以降の gsutil で JSON API を操作します。いずれかの API を使用してコマンドを実行できない場合(たとえば、通知コマンドは XML API ではサポートされない)、gsutil は何もメッセージを出さずに他の API を使用します。また、gsutil は、この API のみをサポートするクラウド ストレージ プロバイダを操作するときに、自動的に XML API を使用します。

詳しくは、JSON API または XML API に関するドキュメントをご覧ください。

使用する API の構成

特定の API を使用して Cloud Storage を操作するには、.boto 構成ファイルの「GSUtil」セクションで「prefer_api」変数を次のように「xml」または「json」に設定します。

prefer_api = json

これにより、gsutil はこの API を使用します。前述のように、この API が使用できない場合には、もう一方の API に切り替わります。これは、優先の API で統合テストを実行する gsutil test コマンドにも適用されます。

詳しくは、Boto 構成ファイルのドキュメントをご覧ください。

API のパフォーマンスとコストの違い

XML API は boto フレームワークを使用します。このフレームワークでは、ダウンロードしたファイルの MD5 ハッシュが見つからないと、ファイルを再度読み込み、ハッシュ値を計算します。メタデータに MD5 ハッシュが含まれないオブジェクト(Cloud Storage 複合オブジェクトなど)の場合、ダウンロードに必要な帯域幅と経過時間が 2 倍になります。複合オブジェクトを使用する場合には、prefer_api のデフォルト値を使用することをおすすめします。

XML API の場合、別のオブジェクトやバケットのメタデータ フィールド(ACL やバケットの設定など)を取得するときに、別の呼び出しを行う必要があります。可能であれば、JSON API を使用したほうが、操作が少なくなります(コストも低くなります)。