amazon-web-services - 存储带有标签和前缀的图像以快速查询(s3 aws)
问题描述
我使用 Ionic 创建了一个可以拍照并可以将图像从手机上传到 s3 的移动应用程序。我想知道如何在上传图片旁边添加前缀或标签,以帮助我快速且独特地查询。我考虑做一个前缀并创建文件夹:年/月/日/文件名(例如:2018/11/27/image.png)如果2018/11/27/文件夹中有很多图像,我认为它会查询速度慢,有时图像文件名不是唯一的。有什么建议吗?很多。
解决方案
Amazon S3 是一种出色的存储服务,但它不是数据库。
您可以使用任何名称将对象存储在 Amazon S3 中,但如果您希望快速列出/排序/查找对象,则应将对象的名称及其元数据存储在数据库中。然后您可以查询数据库以找到感兴趣的对象。
DynamoDB将是一个不错的选择,因为它可以配置为保证速度。您还可以将DAX放在 DynamoDB 前面以获得更高的性能。
通过存储在数据库中的有关对象的信息,您可以坦率地为每个单独的对象命名您想要的任何名称。许多人只使用 UUID,因为它只需要是唯一标识符。对象名称本身不需要传达任何含义——它只是一个 Key,用于在以后需要访问该对象时标识该对象。
但是,如果对象通常成组处理(例如将每日文件分组到几个月中以使用 Hadoop 集群进行处理),那么在特定路径中定位对象很有用。它允许一起处理对象,而无需查阅数据库。
推荐阅读
- javascript - 为多种用途创建角度解析器
- javascript - 按元素属性获取地址
- python - Django 动态 url 参数名称
- javascript - JavaScript ES6 导入语法?
- database-normalization - 用第二范式重写关系
- javascript - 如何添加代码来计算价格并将其连接到 orderMessage
- javascript - 如何在 Angular 7 的表格中添加行组件?
- python - 将相似范围的数字组合在一起的功能?
- sql - 使用 SQL 使用列的值选择所有可能的行集
- rxjs - takeUntil 未能防止可观察到的排放