背景 - 我的应用与厨师有关,人们会发布图片和视频。这些数字将是巨大的。
技术堆栈 - RoR,nginx,Postgresql,AWS。
我的问题:
我在看FB如何存储图像和视频。不确定我是否必须这样做,因为我的是一个小应用程序。
P.S - 我已经使用基本的s3设置完成了MVP,但存在性能问题。
我想知道使用另一个数据库,因为图像和视频是非结构化的。 (如果我错了,请纠正我) 我发布这个是因为我有一个实际的工作问题。
答案 0 :(得分:1)
这是一个很大的问题,答案可能会根据不同的意见和经验而有所不同。但就您所考虑的而言,AWS S3是管理文件(尤其是媒体)的不错选择。您还可以搜索s3,并将元信息与您可能要调用标记的文件相关联。要为读取扩展更多,您还可以设置弹性搜索或opensearch服务器来索引s3中的图像分布。无论您使用何种工具或平台,最好的方法都是索引。但由于包括成本在内的项目限制,使用索引不能始终实现。事实上,你可能甚至不想要CDN,因为S3在地理上分布在更广泛的地区,你可以利用它。
编辑---------
是的,您可以索引存储的图像信息。您可以设置弹性搜索服务器,其索引将始终更新。如果您不热衷于投资elasticsearch,您可以设置一个简单的数据库,而不必担心未来的未来问题。可能是您可以设置NoSQL(DynamoDB AWS)。在s3中的每个商店中,创建一个触发器,用其信息存储标签和其他元信息更新DynamoDB。您可以从存储在该DynamoDB映射中的s3 URI中检索该信息并显示图像。