首页 > 解决方案 > 存储带有标签和前缀的图像以快速查询(s3 aws)

问题描述

我使用 Ionic 创建了一个可以拍照并可以将图像从手机上传到 s3 的移动应用程序。我想知道如何在上传图片旁边添加前缀或标签,以帮助我快速且独特地查询。我考虑做一个前缀并创建文件夹:年/月/日/文件名(例如:2018/11/27/image.png)如果2018/11/27/文件夹中有很多图像,我认为它会查询速度慢,有时图像文件名不是唯一的。有什么建议吗?很多。

标签: amazon-web-servicesamazon-s3

解决方案


Amazon S3 是一种出色的存储服务,但它不是数据库。

您可以使用任何名称将对象存储在 Amazon S3 中,但如果您希望快速列出/排序/查找对象,则应将对象的名称及其元数据存储在数据库中。然后您可以查询数据库以找到感兴趣的对象。

DynamoDB将是一个不错的选择,因为它可以配置为保证速度。您还可以将DAX放在 DynamoDB 前面以获得更高的性能。

通过存储在数据库中的有关对象的信息,您可以坦率地为每个单独的对象命名您想要的任何名称。许多人只使用 UUID,因为它只需要是唯一标识符。对象名称本身不需要传达任何含义——它只是一个 Key,用于在以后需要访问该对象时标识该对象。

但是,如果对象通常成组处理(例如将每日文件分组到几个月中以使用 Hadoop 集群进行处理),那么在特定路径中定位对象很有用。它允许一起处理对象,而无需查阅数据库。


推荐阅读