Google Cloud Storage クライアント ライブラリ関数

Google Cloud Storage クライアント ライブラリには次の関数があります。

関数

  • cloudstorage.copy2() - 指定したファイルを、同じ Cloud Storage バケットの指定した新しいファイル名にコピーします。
  • cloudstorage.delete() - 指定したオブジェクトを Cloud Storage バケットから削除します。
  • cloudstorage.listbucket() - Cloud Storage バケットのオブジェクトを一覧表示します。
  • cloudstorage.open() - 指定したモードに応じて Cloud Storage バケットの既存のオブジェクトを読み取り用または上書き用に開いたり、新規オブジェクトを作成したりします。
  • cloudstorage.stat() - ファイルに関するメタデータ情報(コンテンツのタイプ、サイズ、タイムスタンプ、MD5 ダイジェスト、Cloud Storage ヘッダーなど)を提供します。

cloudstorage.open() を呼び出して、指定した Cloud Storage オブジェクトを表すファイルに似たオブジェクトが返されたら、write()close() などの標準的な Python ファイル関数を使用して Cloud Storage バケットにオブジェクトを書き込んだり、read() を使用して Cloud Storage バケットからオブジェクトを読み取ったりできます。

クラス

関数

cloudstorage.copy2 (src, dst, metadata=None, retry_params=None)

指定したファイルを、指定した新しいファイル名にコピーします。デフォルトではメタデータも一緒にコピーします。オプションの metadata パラメータを使用すると、コピーのメタデータを上書きできます。

指定された Cloud Storage が存在しない場合は、cloudstorage.NotFoundError が発生します。承認が失敗した場合は、cloudstorage.AuthorizationError が発生します。

引数

src(必須)
オブジェクトを表す完全な Cloud Storage ファイル名(形式は /bucket/object_name)。完全なファイル名でなければならず、区切り文字 `/` を含めることができます。
dst (必須)
オブジェクトのコピーを表す完全な Cloud Storage ファイル名(形式は /bucket/object_name)。完全なファイル名でなければならず、区切り文字 `/` を含めることができます。
metadata= None(省略可能)
このコピーのメタデータのディクショナリ(たとえば {'x-goog-meta-foo': 'bar'})。metadata パラメータを指定した場合、元のメタデータは新規ファイルにどれもコピーされません。メタデータを指定しない場合(None)、ソースファイルのメタデータがすべてコピーされます。
retry_params= None(省略可能)
RetryParams オブジェクト。この呼び出しのデフォルトのタイムアウトや再試行の設定を変更する場合は、ここで指定します。

ファイルをコピーし、新しいメタデータを追加して、ソースファイルが存在しない場合のエラーを無視します。
import cloudstorage

try:
  cloudstorage.copy2('/my_bucket/README', '/my_bucket/README2', metadata={'x-goog-meta-zzzzz': 'zzzzz'})
except cloudstorage.NotFoundError:
  pass

トップへ戻る


cloudstorage.delete (filename, retry_params=None)

指定したファイルを Cloud Storage バケットから削除します。

指定された Cloud Storage が存在しない場合は、cloudstorage.NotFoundError が発生します。

引数

filename (必須)
オブジェクトを表す完全な Cloud Storage ファイル名(形式は /bucket/object_name)。完全なファイル名でなければならず、区切り文字 `/` を含めることができます。
retry_params= None(省略可能)
RetryParams オブジェクト。この呼び出しのデフォルトのタイムアウトや再試行の設定を変更する場合は、ここで指定します。

ファイルを削除しますが、ファイルが存在しない場合のエラーを無視します。
import cloudstorage

try:
  cloudstorage.delete(filename)
except cloudstorage.NotFoundError:
  pass

トップへ戻る


cloudstorage.listbucket (path_prefix, marker=None, max_keys=None, delimiter=None, retry_params=None)
バケット イテレータ オブジェクトを返します。このイテレータは、すべてのフィルタに一致するオブジェクトのリストをソートした状態で返します。なお、この関数は非同期的です。イテレータが結果を取得する前にイテレータが呼び出された場合を除き、ブロックしません。

delimiter 引数を使用するかどうかに応じて、この関数は次の 2 つの異なるモードで動作します。

  • 通常モード(デフォルト): 階層の概念なしで、バケット内のすべてのファイルを一覧表示します。(Cloud Storage には実際のディレクトリ階層がありません。)
  • ディレクトリ エミュレーション モード: delimiter 引数を指定した場合、それがパスの区切り文字として使用され、ディレクトリの階層をエミュレートします。

引数

path_prefix (必須)
/bucket または /bucket/prefix という形式の Cloud Storage パス(例: /bucket/foo/2001)。フルパスが path_prefix で始まるオブジェクトのみが返されます。
marker= None (省略可能)
文字列。別のパス プレフィクス。辞書順でマーカーの後続にあるフルパスを持つオブジェクトのみが限定的に返されます。「マーカー」として使用されるファイルは返されません。たとえば superduperfoo3.txt から始めてすべてのファイルの一覧を得るには、superduperfoo3.txt の直前のファイルを次のように指定します。
stat = cloudstorage.listbucket("/my_bucket/foo", marker='/my_bucket/foo/superduperfoo2.txt')
このパラメータを使用する 1 つの方法として、バケット ファイル名を「ページ割り付け」するために max_keys とともに使用できます。
max_keys= None (省略可能)
整数。返されるオブジェクトの最大数を指定します。必要なオブジェクトの数がわかっている場合にこれを使用します。(指定しない場合、Cloud Storage クライアント ライブラリはすべての結果を自動的にバッファしてページングします。)これを marker とともに使用すると、バケット内のファイル名を「ページ割り付け」することができます。
stats = cloudstorage.listbucket(bucket + '/foo', max_keys=page_size, marker=stat.filename)
delimiter= None (省略可能)
文字列。ディレクトリ モードを有効にします。ディレクトリの区切り文字として使われる 1 つまたは複数の文字を指定できます。
retry_params= None(省略可能)
RetryParams オブジェクト。この呼び出しのデフォルトのタイムアウトや再試行の設定を変更する場合は、ここで指定します。

結果値

一致するファイルの GCSFileStat オブジェクトのイテレータを、ファイル名でソートした状態で返します。通常モードでは、返される GCSFileStat オブジェクトに次のデータが含まれます。

  • filename
  • etag(ファイルのコンテンツの MD5 ハッシュを示す 16 進数表現)
  • st_size(ヘッダーのコンテンツ長)
  • st_ctime
  • is_dir

注: GCSFileStat オブジェクトの is_dir プロパティが True である場合、そのオブジェクトの他のプロパティは filename のみです。is_dirFalse である場合、GCSFileStat には他のすべてのプロパティも含まれます。

トップへ戻る


cloudstorage.open(filename, mode='r', content_type=None, options=None, read_buffer_size=storage_api.ReadBuffer.DEFAULT_BUFFER_SIZE, retry_params=None)

読み取りモード(r)では、指定した Cloud Storage オブジェクトが読み取り用に開きます。書き込みモード w では、指定したファイルが存在すれば、上書き用にそれが開きます(内容の追加はサポートされていません)。ファイルが存在しない場合、指定したバケットにそれが作成されます。

書き込みが完了した後、そのファイルを読み取ったり Cloud Storage に保存したりするには、close 関数を使ってファイルを閉じてください。close を呼び出さなくてもエラーにはなりませんが、ファイルを読み取ることも Cloud Storage に保持することもできません。

発生するエラー:

  • cloudstorage.NotFoundError 読み取りモードで、指定したオブジェクトが存在しない場合に発生します。

引数

filename (必須)
開くファイル。/bucket/object という形式です。例: /my_bucket/lyrics/southamerica/list5.txt
mode (省略可能)
文字列。読み取り用にファイルを開くには 'r' を指定します(これがデフォルトです)。既存のファイルを上書き用に開くか、新規ファイルを作成するには、'w' を指定します。

content_type: (省略可能)
文字列。書き込みモードでのみ使用します。ファイルの MIME タイプを指定してください(有効な任意の MIME タイプを指定できます)。この値を指定しない場合、Cloud Storage はオブジェクトを提供するときにデフォルトで binary/octet-stream タイプを使用します。
options: (省略可能)

ディクショナリ。書き込みモードでのみ使用します。可能なオプションは x-goog-aclx-goog-meta-cache-controlcontent-disposition および content-encoding です。

x-goog-acl オプションを提供しない場合、Cloud Storage はバケットのデフォルト ACL を使用します。x-goog-acl に有効な値は、x-goog-acl に関する Cloud Storage ドキュメントに一覧されています。

x-goog-meta- ヘッダーを使用して、カスタム オブジェクト メタデータを指定できます。次に例を示します。

gcs_file = cloudstorage.open(filename, 'w', content_type='text/plain', options={'x-goog-acl': 'private','x-goog-meta-foo': 'foo', 'x-goog-meta-bar': 'bar'})
read_buffer_size: (省略可能)
整数。読み取りモードでのみ使用されます。この値を設定しない場合、デフォルトのバッファサイズが使用されます(これが推奨されます)。読み取り時には、最適なプリフェッチ パフォーマンスを得るために read_buffer_size で読み取ってください。
retry_params= None(省略可能)
RetryParams オブジェクト。この呼び出しのデフォルトのタイムアウトや再試行の設定を変更する場合は、ここで指定します。

結果値

読み取りまたは書き込みのバッファを返します。標準的な Python readwriteclose 関数を呼び出せる、ファイルに似たインターフェースがここでサポートされます。読み取り/書き込みが終了した後にこのバッファを閉じる必要があります。

トップへ戻る


cloudstorage.stat(filename, retry_params=None)

ファイル メタデータを含む GCSFileStat オブジェクトを返します。

指定された Cloud Storage が存在しない場合は、cloudstorage.NotFoundError が発生します。

引数

filename (必須)
開くファイル。/bucket/object という形式です。例: /my_bucket/lyrics/southamerica/list5.txt
retry_params= None(省略可能)
RetryParams オブジェクト。この呼び出しのデフォルトのタイムアウトや再試行の設定を変更する場合は、ここで指定します。

結果値

ファイル メタデータを含む GCSFileStat オブジェクトを返します。

トップへ戻る

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Python の App Engine スタンダード環境