GAE / P:直接从GCS向用户提供文件而无需读入GAE内存

时间:2015-03-23 13:18:34

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

在我的App Engine应用中,我使用GCS Python Client library存储了一些文件。

目前,要将文件提供给用户,请执行以下操作:

  1. 使用GCS Python客户端库
  2. 将文件从GCS读取到App Engine
  3. 使用webapp2(self.response.write(...)
  4. 将文件提供给用户

    似乎应该有一种方法可以直接向用户提供此文件。

    我不想修改ACL,因为文件需要保持私有,但是不必将文件读入GAE内存以便将其提供给用户是很好的。

    对此有更好的解决方案吗?

1 个答案:

答案 0 :(得分:3)

生成签名的URL,然后将签名的URL发送到客户端。然后,客户端可以使用签名URL直接从GCS下载数据。您可以在URL上设置到期日期,以便它仅适用于您的应用程序可接受的时间段。

文档中的更多信息 - > https://cloud.google.com/storage/docs/access-control#Signed-URLs

这是一些示例python代码 - > https://github.com/GoogleCloudPlatform/storage-signedurls-python