首页 > 解决方案 > 使用 Google Cloud Storage 托管图像共享站点的图像

问题描述

我正在构建一个图像共享站点,我希望将上传的图像保存在 Cloud Storage 上。我处于 POC 阶段,想了解以下内容:

也对实现上述目标的任何其他替代方案持开放态度。谢谢!

标签: google-cloud-platformgoogle-cloud-storage

解决方案


您的问题需要云中的工程和架构。因此,我可以为您提供一些见解,但您需要更深入地了解每个部分以正确实现您的网站

首先,用户不能直接访问 Cloud Storage 存储桶,您需要将其设置为公开,任何人都可以访问所有内容。当用户需要读取或写入文件时,使用签名的 Url 机制

上传新图片时,您需要触发 Cloud Function(上传文件时会发出一个事件,您可以在此事件上插入一个函数(或pubsub))。为什么?因为覆盖/水印/低分辨率版本需要在服务器端完成。您可以在网站上显示图片时执行此操作。但它减少了用户的延迟。thumbnail这就是为什么我建议您在使用 Cloud Functions 上传文件并将其存储在 Cloud Storage 中(在另一个目录中,如)时执行此新图像版本

因此,您需要在数据库中保存 2 个路径:原始图像和处理后的图像。在站点上,您显示处理后的图像,当单击下载按钮时,您会生成一个签名 URL 以下载原始图像。


ACL 将被弃用,或者至少不被 Google 推荐。拥有统一的授权策略(基于 IAM 服务)是 Google 推荐的最佳做法。

但是你可以达到同样的效果 在此处输入图像描述

但是,在这种情况下,您不能限制对原始版本目录和缩略图目录的访问。用户可以免费访问所有内容,下载、上传和删除他们想要的内容。

如果这是您的用例,那就完美了,否则......使用签名的网址!


推荐阅读