首页 > 解决方案 > 带有 AWS S3 的 RESTFUL API

问题描述

所以我的“技术主管”希望我的团队使用 AWS DynamoDB 作为数据库创建一个带有 SpringBoot 的 REST API,我们成功地实现了它。但是,现在他想用 AWS S3 替换 AWS DynamoDB,这对我来说没有意义。那将如何运作?将 API 调用保存为文本文件,然后将其存储在 S3 中?我该怎么做?假设我可以执行 POST 请求,并且 S3 中的一个文件中有 5 个,接下来我该如何删除或更新那里的 2 条记录?有没有人有任何经验可以在这里阐明?同样在你问“为什么不问技术领先?”之前 我们做到了,当我们询问如何使用 DynamoDB 时,他说“自己解决”同样的答案

标签: javaamazon-web-servicesapispring-bootamazon-s3

解决方案


DynamoDB 的一个用例是将其用作纯键值存储。例如,您可以使用创建一个简单的 Wiki 并使用文档名称作为键来存储文档。

您不能将 S3 用于相同的用例没有根本原因。S3 是一个对象存储,它是另一种在给定单个键的情况下存储对象的方式。

因此,如果您的解决方案没有使用过滤器表达式或其他逻辑在 dynamo 中执行复杂查询,您可能只需更改存储,并将每个键/值对视为与键名一起存储的 S3 项。

这里有一些重要的警告。其中最重要的一点是,如果您要更新数据,或者甚至在使用之前查看密钥是否存在,您迟早可能会遇到 S3 的最终一致性。鉴于提供的详细信息,几乎不可能判断 S3 或 Dynamo 是否更适合您的应用程序需求。

更大的问题:为什么要更改数据存储?如果您在使用 Dynamo 时遇到问题,最好询问一下这个问题。很可能有解决方案。


推荐阅读