java - 带有 AWS S3 的 RESTFUL API
问题描述
所以我的“技术主管”希望我的团队使用 AWS DynamoDB 作为数据库创建一个带有 SpringBoot 的 REST API,我们成功地实现了它。但是,现在他想用 AWS S3 替换 AWS DynamoDB,这对我来说没有意义。那将如何运作?将 API 调用保存为文本文件,然后将其存储在 S3 中?我该怎么做?假设我可以执行 POST 请求,并且 S3 中的一个文件中有 5 个,接下来我该如何删除或更新那里的 2 条记录?有没有人有任何经验可以在这里阐明?同样在你问“为什么不问技术领先?”之前 我们做到了,当我们询问如何使用 DynamoDB 时,他说“自己解决”同样的答案
解决方案
DynamoDB 的一个用例是将其用作纯键值存储。例如,您可以使用创建一个简单的 Wiki 并使用文档名称作为键来存储文档。
您不能将 S3 用于相同的用例没有根本原因。S3 是一个对象存储,它是另一种在给定单个键的情况下存储对象的方式。
因此,如果您的解决方案没有使用过滤器表达式或其他逻辑在 dynamo 中执行复杂查询,您可能只需更改存储,并将每个键/值对视为与键名一起存储的 S3 项。
这里有一些重要的警告。其中最重要的一点是,如果您要更新数据,或者甚至在使用之前查看密钥是否存在,您迟早可能会遇到 S3 的最终一致性。鉴于提供的详细信息,几乎不可能判断 S3 或 Dynamo 是否更适合您的应用程序需求。
更大的问题:为什么要更改数据存储?如果您在使用 Dynamo 时遇到问题,最好询问一下这个问题。很可能有解决方案。
推荐阅读
- visual-studio - 如何从失败的 VS2019 安装中释放空间
- sql-server - 部署多维项目时VS中的“对象引用未设置为对象的实例”
- c - 为什么有人会定义这样的指针?
- semantic-ui-react - 如何使用反应语义 ui Dropdown 在右侧显示页面数和选定页面?
- sqlite - 如何更改设置以远程访问我的 SQLite 数据库
- python - Python - 如何根据其值裁剪图像?
- python - 为什么 TF2 的 Dataset.map 不像普通的 for 循环遍历?
- c++ - 如何从 C++ 中的文本文件中删除相似值并将其分组?
- tensorflow - ModelCheckPoint Keras 不会创建任何检查点文件。(Colab)
- wpf - WPF 窗口不会释放其资源,直到程序终止