1

リファレンスは次のとおりです: https://developers.google.com/appengine/docs/python/blobstore/functions#create_gs_key

ファイルを BlobstoreUploadHandler にアップロードすると、blob_info に blob_key が保存されます。180 分後に images.Image(blob_key=blob_key) で blob_key を使用してテストしましたが、まだ機能していました。

ただし、ドキュメントには、create_gs_key からの blob_key には 60 分の access_token があると記載されています。

これが何を意味し、その access_token が何に使用されるのかはわかりません。ドキュメントには、blob_key が保存しても安全であると記載されています。「保存しても安全」とは何かもわかりません。

では、GCS エンティティの blob_key を無期限に使用できますか?

4

1 に答える 1

1

ソースコードを見る:

def create_gs_key(filename, rpc=None):
  """Create an encoded key for a Google Storage file.

  The created blob key will include short lived access token using the
  application's service account for authorization.

  This blob key should not be stored permanently as the access token will
  expire.

  Args:
    filename: The filename of the google storage object to create the key for.
    rpc: Optional UserRPC object.

  Returns:
    An encrypted blob key object that also contains a short term access token
      that represents the application's service account.
  """
  rpc = create_gs_key_async(filename, rpc)
  return rpc.get_result()

これは、ドキュメントの内容と矛盾します。

Blobstore API で通常の BLOB キーを永続化できるのと同様に、この関数によって生成された BLOB キーを安全に永続化できます。

私がお勧めするのは、create_gs_key関数を使用しているため、必要なファイル名は既にわかっているということです。そのため、この値をBlobKey保存して、問題のファイルを操作するたびに BlobStore API で使用する を生成します (例:getdelete) 。

更新:ドキュメントを修正するために提出され たバグ レポートがあります。

于 2013-08-08T13:45:00.473 に答える