google.appengine.ext.blobstore.blobstore モジュール

概要

アプリ デベロッパーが使用する Python Blobstore API。

このモジュールには、Blobstore API とのインターフェースに使用されるメソッドが含まれています。モジュールには db.Model のような、非常に大きな blob への参照を表すクラスが含まれています。モジュールは、db.Key のような、blob キーを表すクラスをインポートします。

内容

exception google.appengine.ext.blobstore.blobstore.BlobFetchSizeTooLargeErrorソース

ベース: google.appengine.api.blobstore.blobstore.Error

ブロックが大きすぎてフェッチできませんでした。

class google.appengine.ext.blobstore.blobstore.BlobInfo(entity_or_blob_key, _values=None)ソース

ベース: オブジェクト

Blobstore 内の blob に関する情報。

これは db.Model のような、アプリケーションによって格納される blob に関する情報を含むクラスです。db.Model のように、このクラスは Datastore エンティティによってサポートされています。ただし、BlobInfo インスタンスは読み取り専用であり、インターフェースは大きく制限されています。

BlobInfo には、BlobKey 型のキーが関連付けられています。このキーは、Blobstore API に固有のものであり、db.get と互換性がありません。このキーは、BlobInfo.get に渡すことで検索が簡単になります。このキーは簡単に文字列に変換されます。文字列はウェブセーフで、URL に埋め込むことができます。

プロパティ:
  • content_type: blob のコンテンツ タイプ。

  • creation: blob の作成日、またはアップロードされた日。

  • filename: ユーザーが自分のマシンから選択したファイル名。

  • size: 未圧縮の blob のサイズ。

  • md5_hash: アップロードされた blob の MD5 ハッシュ値。

gs_object_name: オブジェクトの名前(blob が

Google Cloud Storage に /[bucket-name]/[object-name] の形式で格納されている場合)

すべてのプロパティは読み取り専用です。プロパティに値を代入しようとすると、NotImplementedError が発生します。

classmethod all()ソース

アプリに関連付けられたすべての BlobInfo オブジェクトのクエリを作成します。

戻り値

db. Query オブジェクトで、BlobInfo のデータストアの種類を問い合わせるオブジェクト。

content_type

blob のコンテンツ タイプを返します。

戻り値

blob のコンテンツ タイプ。

creation

blob のアップロードの作成日または作成時刻を返します。

戻り値

blob のアップロードの作成日または作成時刻。

delete(_token=None)ソース

Blobstore から blob を永久に削除します。

filename

ユーザーが自分のマシンから選択したファイル名を返します。

戻り値

ユーザーが選択したファイル名。

classmethod from_entity(entity)ソース

エンティティを BlobInfo に変換します。

パラメータ

entity - 変換しようとしているエンティティ。

戻り値

エンティティから変換された BlobInfo

classmethod get(blob_keys)ソース

BlobInfo をキーまたはキーのリストで取得します。

パラメータ

blob_keys - キーまたはキーのリスト。キーは、文字列、Unicode、または BlobKey 形式にすることができます。

戻り値

指定したキーに関連付けられた BlobInfo インスタンス、またはキーのリストを指定した場合は BlobInfo インスタンスのリスト。Blobstore に見つからないキーは None を返します。

classmethod gql(query_string, *args, **kwds)ソース

GQL クエリ文字列を使用してクエリを返します。

GQL の詳細については GQL source をご覧ください。

パラメータ
  • query_string - SELECT * FROM <entity> を省略した適切な形式の GQL クエリ文字列。

  • *args - クエリの数値参照をバインドするために使用される残りの固定引数。

  • **kwds - 名前付きパラメータの辞書ベースの引数。

戻り値

gql.GqlQuery オブジェクトで、BlobInfo のデータストアの種類を問い合わせるオブジェクト。

gs_object_name
key()ソース

blob のキーを取得します。

戻り値

この blob を識別する BlobKey インスタンス。

classmethod kind()ソース

BlobInfo エンティティの種類を取得します。

戻り値

BlobInfo のエンティティの種類。

md5_hash

未圧縮の blob の MD5 ハッシュ値を返します。

戻り値

未圧縮の blob のハッシュ値。

open(*args, **kwargs)ソース

この blob の BlobReader を返します。

パラメータ
  • *args – BlobReader コンストラクタに渡す引数。

  • **kwargs – BlobReader コンストラクタに渡すキーワード引数。

戻り値

BlobReader インスタンス。

classmethod properties()ソース

BlobInfo に属する一連のプロパティを定義します。

戻り値

BlobInfo に属するすべてのプロパティのセット。

size

未圧縮の blob のサイズを返します。

戻り値

未圧縮の blob のサイズ。

exception google.appengine.ext.blobstore.blobstore.BlobInfoParseErrorソース

ベース: google.appengine.api.blobstore.blobstore.Error

CGI パラメータに有効な BlobInfo レコードが含まれていません。

class google.appengine.ext.blobstore.blobstore.BlobKey(blob_key)ソース

ベース: オブジェクト

Blobstore の blob を識別するために使用されるキー。

このオブジェクトは Blobstore API によって内部でアプリケーションの blob を識別するために使用される文字列をラップします。BlobKey は基盤となる BlobReference エンティティのエンティティの名前に対応します。

このクラスは google.appengine.ext.db と google.appengine.ext.blobstore の両方で API で公開されます。

ToXml()ソース
class google.appengine.ext.blobstore.blobstore.BlobMigrationRecord(parent=None, key_name=None, _app=None, _from_entity=False, **kwds)ソース

ベース: google.appengine.ext.db.Model

blob の移行の結果を記録するモデルを定義します。

classmethod get_by_blob_key(old_blob_key)ソース

指定された blob キーの BlobMigrationRecord をフェッチします。

パラメータ

old_blob_key – 前のアプリで使用された blob キー。

戻り値

blobstore.BlobMigrationRecord のインスタンスまたは None

classmethod get_new_blob_key(old_blob_key)ソース

blob の新しいキーを探します。

パラメータ

old_blob_key – 元の blob キー。

戻り値

移行済みの blob の blobstore.BlobKey

classmethod kind()ソース

移行する blob の種類を指定します。

戻り値

移行する blob の種類

new_blob_ref

db.Model クラスと互換性のあるプロパティ。

BlobReferenceProperty を使用して、blob への参照をドメインモデルに追加します。

class Picture(db.Model):
  title = db.StringProperty()
  image = blobstore.BlobReferenceProperty()
  thumbnail = blobstore.BlobReferenceProperty()

このモデルを使用して画像のサイズを見つけるには:

picture = Picture.get(picture_key)
print picture.image.size

BlobInfo オブジェクトは遅延ロードされるため、BlobKeys のモデルが効率的に反復処理されます。次のサンプルコードでは、イメージキーごとに Datastore をヒットする必要はありません。

list_of_untitled_blobs = []
for picture in Picture.gql("WHERE title=''"):
  list_of_untitled_blobs.append(picture.image.key())
exception google.appengine.ext.blobstore.blobstore.BlobNotFoundErrorソース

ベース: google.appengine.api.blobstore.blobstore.Error

blob が存在しません。

class google.appengine.ext.blobstore.blobstore.BlobReferenceProperty(verbose_name=None, name=None, default=None, required=False, validator=None, choices=None, indexed=True)ソース

ベース: google.appengine.ext.db.Property

db.Model クラスと互換性のあるプロパティ。

BlobReferenceProperty を使用して、blob への参照をドメインモデルに追加します。

class Picture(db.Model):
  title = db.StringProperty()
  image = blobstore.BlobReferenceProperty()
  thumbnail = blobstore.BlobReferenceProperty()

このモデルを使用して画像のサイズを見つけるには:

picture = Picture.get(picture_key)
print picture.image.size

BlobInfo オブジェクトは遅延ロードされるため、BlobKeys のモデルが効率的に反復処理されます。次のサンプルコードでは、イメージキーごとに Datastore をヒットする必要はありません。

list_of_untitled_blobs = []
for picture in Picture.gql("WHERE title=''"):
  list_of_untitled_blobs.append(picture.image.key())
data_type

BlobInfo のエイリアス

get_value_for_datastore(model_instance)ソース

データストア値に変換されたモデル プロパティを返します。

パラメータ

model_instance - 変換するモデル プロパティ。

戻り値

データストアから変換されたモデル プロパティ。

make_value_from_datastore(value)ソース

BlobInfo にデータストア値を返します。

パラメータ

value - 変換するデータストア値。

戻り値

データストアから変換された BlobInfo

validate(value)ソース

割り当てられた値が BlobInfo あることを検証します。

このメソッドでは、文字列と BlobKey インスタンスから自動的に変換されます。

パラメータ

value - 検証する値です。

戻り値

割り当てられた値が BlobInfo かどうかに関する情報。

class google.appengine.ext.blobstore.blobstore.BlobReader(blob, buffer_size=131072, position=0)ソース

ベース: オブジェクト

blobstore blob への読み取り専用ファイルのようなインターフェースを提供します。

SEEK_CUR = 1
SEEK_END = 2
SEEK_SET = 0
blob_info

このファイルの BlobInfo を返します。

戻り値

BlobInfo を含む文字列。

close()ソース

ファイルを閉じます。

閉じたファイルは、以後は読み書きできません。ファイルを閉じると、ファイルを開く必要があるオペレーションでは ValueError が発生します。close() は複数回呼び出すことができます。

closed

ファイルが閉じられているかどうかを調べます。

戻り値

このファイルが閉じている場合は True。開いているファイルは False を返します。

flush()ソース
next()ソース

ファイルの次の行を返します。

戻り値

\n で終わる文字列。最後の行は \n 終わることはできません。ファイルの終わりに達すると、空の文字列が返されます。

発生

StopIteration - 読み込む行がない場合。

read(size=-1)ソース

最大 size バイトをファイルから読み込みます。

size バイトを取得する前に読み込みがファイルの最後に到達した場合、より少ないバイトが読み込まれます。size 引数が負の値であるか省略された場合、ファイルの終わりに達するまですべてのデータが読み込まれます。バイトは文字列オブジェクトとして返されます。ファイルの終わりに達するとすぐに空文字列が返されます。

size を指定せずに read() を呼び出すと、データが大量に読み込まれる可能性があるため、危険です。

パラメータ

size - オプション。読み込む最大バイト数。省略すると、read() はファイル内の残りのデータをすべて返します。

戻り値

読み取られたデータが文字列で返されます。

readline(size=-1)ソース

ファイルから 1 行全体を読み込みます。

末尾の改行文字は文字列に保持されますが、ファイルが不完全な行で終了した場合は省略される可能性があります。size 引数が存在し、負でない場合は、末尾の改行を含む最大バイト数を表し、不完全な行が返される可能性があります。空の文字列は、ファイルの終わりに達するとすぐに返されます。

パラメータ

size - オプション。読み込む最大バイト数。

戻り値

読み取られたデータが文字列で返されます。

readlines(sizehint=None)ソース

readline() を使用してファイルの終わりまで読み取ります。

読み取られた行のリストが返されます。

オプションの sizehint 引数が存在する場合、ファイルの最後まで読み取るのではなく、内部バッファサイズまで切り上げた後に、およそ sizehint バイトの合計行が読み取られます。

パラメータ

sizehint - 読み取る最大バイト数に関するヒント。

戻り値

文字列のリスト。各行はファイルからの 1 行です。

seek(offset, whence=0)ソース

stdio の fseek() のように、ファイルの現在の位置を設定します。

パラメータ
  • offset - シーク先の相対オフセット。

  • whence - オプション。オフセットがどのような値に相対的であるかを定義します。この引数のデフォルトは os.SEEK_SET または 0 で、絶対ファイルの位置決めを使用します。他の有効な値 os.SEEK_CUR または 1 を指定すると、現在の位置を基準にしてシークし、os.SEEK_END または 2 を指定すると、ファイルの終わりを基準にシークします。

tell()ソース

stdio の ftell() のように、ファイルの現在の位置を取得します。

戻り値

ファイルの現在の位置。

truncate(size)ソース

ファイルを切り捨てようとするとエラーが発生します。

パラメータ

size - 切り捨てようとするサイズ。

発生

IOError - BlobReader の中のファイルを切り捨てようとすると発生します。

write(str)ソース

ファイルに書き込もうとするとエラーが発生します。

パラメータ

str - 書き込もうとしている文字列。

発生

IOError - BlobReader の中のファイルに書き込もうとすると発生します。

writelines(sequence)ソース

ファイルに書き込もうとするとエラーが発生します。

パラメータ

sequence - 書き込もうとしている文字列のシーケンス。

発生

IOError - BlobReader の中のファイルに行を書き込もうとすると発生します。

class google.appengine.ext.blobstore.blobstore.FileInfo(filename=None, content_type=None, creation=None, size=None, md5_hash=None, gs_object_name=None)ソース

ベース: オブジェクト

アップロードされたファイルに関する詳細情報。

このクラスには、アプリケーションによって格納された blob に関する情報が含まれます。

このクラスは BlobInfo に似ています。ただし、このメソッドはキーを使用せず、情報はデータストアに保持されません。

プロパティ:
  • content_type: アップロードされたファイルのコンテンツ タイプ。

  • creation: アップロードされたファイルの作成日、またはファイルがアップロード

    された日。

  • filename: ユーザーが自分のマシンから選択したファイル名。

  • size: 未圧縮のファイルのサイズ。

  • md5_hash: アップロードされたファイルの MD5 ハッシュ値。

  • gs_object_name: Google Cloud Storage に書き込まれたファイルの名前。ファイルが Google Cloud Storage にアップロードされていない場合は None です。

すべてのプロパティは読み取り専用です。プロパティに値を代入しようとすると、AttributeError が発生します。

content_type

アップロードされたファイルのコンテンツ タイプを返します。

戻り値

ファイルのコンテンツ タイプ。

creation

ファイルの作成日時またはアップロード時刻を返します。

戻り値

ファイルの作成日時またはアップロード時刻。

filename

ユーザーが選択したファイル名を返します。

戻り値

ユーザーが選択したファイル名。

gs_object_name

Cloud Storage に書き込まれたファイルの名前を返します。

戻り値

Cloud Storage に書き込まれたファイルの名前。

md5_hash

アップロードされたファイルの MD5 ハッシュを返します。

戻り値

アップロードされたファイルのハッシュ値。

size

未圧縮のファイルのサイズを返します。

戻り値

未圧縮のファイルのサイズ。

exception google.appengine.ext.blobstore.blobstore.FileInfoParseErrorソース

ベース: google.appengine.api.blobstore.blobstore.Error

CGI パラメータに有効な FileInfo レコードが含まれていません。

exception google.appengine.ext.blobstore.blobstore.DataIndexOutOfRangeErrorソース

ベース: google.appengine.api.blobstore.blobstore.Error

インデックスにアクセスできませんでした。

指定されたインデックスが範囲外か、または順序が間違っています。

exception google.appengine.ext.blobstore.blobstore.PermissionDeniedErrorソース

ベース: google.appengine.api.blobstore.blobstore.Error

オペレーションは完了しませんでした。必要な権限を確認してください。

exception google.appengine.ext.blobstore.blobstore.Errorソース

ベース: exceptions.Exception

ベース blobstore のエラータイプ。

exception google.appengine.ext.blobstore.blobstore.InternalErrorソース

ベース: google.appengine.api.blobstore.blobstore.Error

内部エラーが発生しました。

google.appengine.ext.blobstore.blobstore.create_rpc(deadline=None, callback=None)ソース

Blobstore API で使用する RPC オブジェクトを作成します。

パラメータ
  • deadline - 任意で指定するオペレーションの期限(秒単位)。デフォルト値はシステム固有の期限(通常は 5 秒)です。

  • callback - オプションで完了時に呼び出して実行できます。

戻り値

apiproxy_stub_map.UserRPC オブジェクトで、このサービスに特化したオブジェクト。

google.appengine.ext.blobstore.blobstore.create_upload_url(success_path, max_bytes_per_blob=None, max_bytes_total=None, rpc=None, gs_bucket_name=None)ソース

POST フォームのアップロード URL を作成します。

パラメータ
  • success_path - POST 呼び出しが成功してアップロードが完了したときに呼び出すアプリケーション内のパス。

  • max_bytes_per_blob - アップロードに含まれる 1 つの blob の最大サイズ(バイト単位)。最大サイズがない場合は None です。

  • max_bytes_total - アップロード内のすべての blob を集約したサイズが、なり得る最大サイズ(バイト単位)。最大サイズがない場合は None です。

  • rpc - オプションの UserRPC オブジェクト。

  • gs_bucket_name - blob をアップロードする Google Cloud Storage バケット名。アプリケーションのサービス アカウントには、このバケットに書き込むための適切な権限が必要です。バケット名は bucket/path/ 形式にすることができます。この場合、インクルードされたパスはアップロードされたオブジェクト名の先頭に追加されます。

戻り値

アップロード URL。

発生
  • TypeError – max_bytes_per_blob または max_bytes_total が整数型でない場合。

  • ValueError – max_bytes_per_blob または max_bytes_total が正の値でない場合。

google.appengine.ext.blobstore.blobstore.create_upload_url_async(success_path, max_bytes_per_blob=None, max_bytes_total=None, rpc=None, gs_bucket_name=None)ソース

POST フォームのアップロード URL を非同期で作成します。

パラメータ
  • success_path - POST 呼び出しが成功してアップロードが完了したときに呼び出されるアプリケーション内のパス。

  • max_bytes_per_blob - アップロードに含まれる 1 つの blob の最大サイズ(バイト単位)。最大サイズがない場合は None です。

  • max_bytes_total - アップロード内のすべての blob を集約したサイズが、なり得る最大サイズ(バイト単位)。最大サイズがない場合は None です。

  • rpc - オプションの UserRPC オブジェクト。

  • gs_bucket_name - blob をアップロードする Google Cloud Storage バケット名。アプリケーションのサービス アカウントには、このバケットに書き込むための適切な権限が必要です。バケット名は bucket/path/ 形式にすることができます。この場合、インクルードされたパスはアップロードされたオブジェクト名の先頭に追加されます。

戻り値

結果がアップロード URL になる UserRPC。

発生
  • TypeError – max_bytes_per_blob または max_bytes_total が整数型でない場合。

  • ValueError – max_bytes_per_blob または max_bytes_total が正の値でない場合。

google.appengine.ext.blobstore.blobstore.delete(blob_keys, rpc=None, _token=None)ソース

Blobstore から blob を削除します。

パラメータ
  • blob_keys - 単一の BlobKey インスタンスまたは blob キーのリスト。blob キーは文字列か BlobKey のインスタンスのどちらかです。

  • rpc - オプションの UserRPC オブジェクト。

戻り値

なし。

google.appengine.ext.blobstore.blobstore.delete_async(blob_keys, rpc=None, _token=None)ソース

Blobstore から blob を非同期的に削除します。

パラメータ
  • blob_keys - 単一の BlobKey インスタンスまたは blob キーのリスト。blob キーは文字列か BlobKey のインスタンスのどちらかです。

  • rpc - オプションの UserRPC オブジェクト。

戻り値

結果が None になる UserRPC。

google.appengine.ext.blobstore.blobstore.fetch_data(blob, start_index, end_index, rpc=None)ソース

blob のデータをフェッチします。

blob のフラグメントを長さが MAX_BLOB_FETCH_SIZE までフェッチします。blob の境界を越えて、さらにフラグメントをフェッチしようとすると、start_index から blob の終わりまでのデータ量が返されます。これはリクエストされたサイズよりも小さいサイズになります。blob の境界の外側にあるフラグメントをリクエストすると、空の文字列が返されます。負のインデックスをフェッチしようとすると、例外が発生します。

パラメータ
  • blob - データをフェッチする blob の BlobInfoBlobKey、文字列、または BlobKey の Unicode 表現。

  • start_index - フェッチする blob データの開始インデックス。この値は負にすることはできません。

  • end_index - フェッチする blob データの終了インデックス(終端を含む)。この値は start_index 以上にする必要があります。

  • rpc - オプションの UserRPC オブジェクト。

戻り値

blob の部分データを含む文字列。インデックスが適格であるが blob の境界の外側にある場合は、空の文字列が返されます。

発生
  • TypeError - start_index または end_index がインデックスでない場合、または blob が文字列でない場合は、BlobKey または BlobInfo です。

  • DataIndexOutOfRangeError - start_index が 0 未満の値に設定されている場合、または end_indexstart_index より小さい場合。

  • BlobFetchSizeTooLargeError - リクエストされた blob フラグメントが MAX_BLOB_FETCH_SIZE より大きい場合。

  • BlobNotFoundError - blob が存在しない場合。

google.appengine.ext.blobstore.blobstore.fetch_data_async(blob, start_index, end_index, rpc=None)ソース

blob のデータを非同期的にフェッチします。

blob のフラグメントを長さが MAX_BLOB_FETCH_SIZE までフェッチします。blob の境界を越えて、さらにフラグメントをフェッチしようとすると、start_index から blob の終わりまでのデータ量が返されます。これはリクエストされたサイズよりも小さいサイズになります。blob の境界の外側にあるフラグメントをリクエストすると、空の文字列が返されます。負のインデックスをフェッチしようとすると、例外が発生します。

パラメータ
  • blob - データをフェッチする blob の BlobInfoBlobKey、文字列、または BlobKey の Unicode 表現。

  • start_index - フェッチする blob データの開始インデックス。この値は負にすることはできません。

  • end_index - フェッチする blob データの終了インデックス(終端を含む)。この値は start_index 以上にする必要があります。

  • rpc - オプションの UserRPC オブジェクト。

戻り値

結果が fetch_data() によって返される文字列になる UserRPC。

発生
  • TypeError - start_index または end_index がインデックスでない場合、または blob が文字列でない場合は、BlobKey または BlobInfo です。

  • DataIndexOutOfRangeError - start_index が 0 未満の値に設定されている場合、または rpc.get_result() を呼び出す際に end_indexstart_index より小さい場合。

  • BlobFetchSizeTooLargeError - rpc.get_result() を呼び出す際にリクエストされた blob フラグメントが MAX_BLOB_FETCH_SIZE より大きい場合。

  • BlobNotFoundError - rpc.get_result() を呼び出す際に blob が存在しない場合。

google.appengine.ext.blobstore.blobstore.create_gs_key(filename, rpc=None)ソース

Google Cloud Storage ファイルのエンコードされたキーを作成します。

将来の使用のためにこのキーを保持すると安全です。

パラメータ
  • filename - キーを作成する対象となる Google Cloud Storage オブジェクトのファイル名。

  • rpc - オプションの UserRPC オブジェクト。

戻り値

暗号化された BlobKey 文字列。

google.appengine.ext.blobstore.blobstore.create_gs_key_async(filename, rpc=None)ソース

Google Cloud Storage ファイルのエンコードされたキーを非同期に作成します。

将来の使用のためにこのキーを保持すると安全です。

パラメータ
  • filename - キーを作成する対象となる Google Cloud Storage オブジェクトのファイル名。

  • rpc - オプションの UserRPC オブジェクト。

戻り値

結果が create_gs_key() によって返される文字列になる UserRPC。

発生
  • TypeError - filename が文字列でない場合。

  • ValueError - filename/gs/bucket_name/object_name 形式でない場合。

google.appengine.ext.blobstore.blobstore.get(blob_key)ソース

blobstore から BlobInfo レコードを取得します。

BlobInfo.get と同じように動作します。

パラメータ

blob_key - 取得するレコードの BlobKey

戻り値

指定したキーに関連付けられた BlobInfo インスタンス、またはキーのリストを指定した場合は BlobInfo インスタンスのリスト。Blobstore に見つからないキーは None を返します。

google.appengine.ext.blobstore.blobstore.parse_blob_info(field_storage)ソース

ファイル アップロード field_storage から BlobInfo レコードを解析します。

パラメータ

field_storage – アップロードされた blob を表す cgi.FieldStorage

戻り値

field_storage インスタンスから解析された BlobInfo レコード。field_storage が定義されていない場合、このメソッドは None を返します。

発生

BlobInfoParseError - field_storageBlobInfo オブジェクトを構築するのに十分な情報を含んでいない場合。

google.appengine.ext.blobstore.blobstore.parse_file_info(field_storage)ソース

ファイル アップロード FileInfo から field_storage レコードを解析します。

パラメータ

field_storage – アップロードされたファイルを表す cgi.FieldStorage

戻り値

field_storage インスタンスから解析された FileInfo レコード。field_storage が指定されていない場合、このメソッドは None を返します。

発生

FileInfoParseError - field_storageFileInfo オブジェクトを構築するのに十分な情報を含んでいない場合。

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

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

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