【问题标题】:Using Google Cloud Platform Storage to store user images使用 Google Cloud Platform Storage 存储用户图像
【发布时间】:2018-03-23 00:56:58
【问题描述】:

我试图了解 Google Cloud Platform 存储,但无法真正理解文档中使用的语言。我想问您是否可以使用存储和 API 来存储用户在您的应用程序中拍摄的照片,如果提供 URL,还可以取回图像?即使可以,这样做是否安全合理?

【问题讨论】:

    标签: google-cloud-platform google-cloud-storage


    【解决方案1】:

    是的,您几乎可以使用存储桶来存储任何类型的数据。

    在将图像从应用程序传输到存储桶方面,必须授权应用程序写入存储桶。

    一种选择是在应用程序中使用服务帐户密钥。服务帐户是一个特殊帐户,应用程序可以使用它来授权各种 Google API,包括存储 API。

    有更多关于服务帐户here 的信息和here 有关使用服务帐户密钥的信息。这些密钥可以在您的应用程序中使用,并允许应用程序继承分配给该服务帐户的权限/范围。

    就使用 URL 检索图像而言,一种可能的选择是使用 signed URLs,这将允许您在给定数量的存储桶中授予用户对对象(在您的情况下为图像)的读取或写入权限时间。

    也可以使用 ACL(访问控制列表)来控制对存储桶对象的访问。如果您对公开可用的图像(即所有人都可以访问)感到高兴,则可以为 AllUsers 设置具有“读者”访问权限的 ACL。 有关这方面的更多信息可以found here

    如果您决定公开提供图像,则从存储桶中检索对象/图像的 URL 格式为:

    https://storage.googleapis.com/[BUCKET_NAME]/[OBJECT_NAME]
    

    编辑:

    关于在文件进入存储桶之前使用接口上传文件,一种选择是拥有一个具有外部 IP 地址的实例(或负载均衡器后面的多个实例),其中最初上传图像。您可以使用FUSE 将 Cloud Storage 挂载到此实例,以便将上传的文件轻松传输到存储桶。在数据库方面,您可以选择在 Compute Engine 实例上手动安装数据库,或使用 Cloud SQL 等完全托管的数据库服务。

    【讨论】:

    • 我想在存储桶之前先与 webAPI 交互。这样客户端将图像发送到 WebAPI,然后 WebAPI 将图像存储在存储桶中,并将对图像的引用存储在数据库中。这是一个可行的选择吗?
    猜你喜欢
    • 2017-04-11
    • 2019-10-12
    • 1970-01-01
    • 1970-01-01
    • 2015-02-15
    • 1970-01-01
    • 2020-01-17
    • 1970-01-01
    • 2014-01-05
    相关资源
    最近更新 更多