为图像选择正确的 google 云数据存储策略

Choosing the correct google cloud data storage strategy for images

我正在为图像共享移动应用程序编写我的第一个 google 云后端,但我很难理解要选择哪个数据存储选项。客户端将是移动应用程序,也可能是 Web 前端。到目前为止,从我读到的内容来看,AppEngine 似乎是一个很好的基础设施。

我需要处理:

将实际的图像和关于用户组的元数据存储在云存储中是否有意义Datastore 中的用户 图像集合 或MySql?特别是我在选择 Datastore 和 MySql.

时遇到了麻烦

任何建议将不胜感激,我在数据库方面的经验很少:)

干杯!

Cloud Storage 上的图像(或其他 "opaque" 大数据,例如视频),以及在结构化程度更高的存储中关于它们的元数据,是所有类似用例的经典架构模式。

如果您的元数据需要关系数据库的某些功能,例如 JOINs,那么云 SQL 可能就是您所需要的 "more structured store";然而,由于您是从头开始设计,因此使用像 App Engine 的数据存储这样的 NoSQL 存储通常是非常可行的,具有可扩展性和其他相关优势(并且您 do 提到"massive upscaling" 将来,所以这可能与你很相关!-)。

这种经典架构的优势之一是像 Cloud Storage 这样的对象存储可以为您提供 "serving URLs" 可以传递给客户端的特定对象(图像),以便完成如此海量数据的服务通过 Cloud Storage 自己的服务器,而不会给应用程序的服务器增加负担。此外,正如 https://cloud.google.com/storage/docs/website-configuration 所说,

Google Cloud Storage behaves essentially like a Content Delivery Network (CDN) with no work on your part because publicly readable objects are, by default, cached in the Google Cloud Storage network.

所以至少对于 "shared with all" 的图像(因此您可以标记为公开可读),您将获得 CDN 的低延迟优势 "with no work on your part"。