用于GCS实体的blob_key是否可以安全使用?

时间:2013-08-08 01:51:19

标签: python google-app-engine google-cloud-storage

以下是参考: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可以无限期地使用吗?

1 个答案:

答案 0 :(得分: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()

这与文档所说的相矛盾:

  

您可以安全地持久保存此函数生成的blob密钥   您可以在Blobstore API中保留普通的blob密钥。

我建议您使用create_gs_key函数,因为您已经知道了所需的文件名。因此,存储此值以生成BlobKey以在每次要与相关文件进行交互时与BlobStore API一起使用(例如,getdelete

<强>更新 提交了bug report来修复文档。