【问题标题】:GAE/P: Serve file directly from GCS to user without reading into GAE memoryGAE/P:直接从 GCS 向用户提供文件,无需读入 GAE 内存
【发布时间】:2015-03-23 13:18:34
【问题描述】:

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

目前,为了向用户提供文件,我执行以下操作:

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

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

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

有没有更好的解决方案?

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢! Google 应该将该功能添加到 GCS 客户端库中。
    猜你喜欢
    • 2023-03-11
    • 2014-01-29
    • 1970-01-01
    • 2019-10-13
    • 1970-01-01
    • 1970-01-01
    • 2015-03-11
    • 2016-04-30
    • 1970-01-01
    相关资源
    最近更新 更多