繁体   English   中英

RESTFUL API 与 AWS S3

[英]RESTFUL API with AWS S3

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

您应该能够将 AWS API 网关(使您能够创建 REST API)与 S3 集成用于类似的事情。 或者滚动您自己的 API,它使用 AWS SDK 向 S3 发出请求。 S3 是一个 object 存储而不是数据库,您可以使用 REST API 来存储单个对象,因此,而不是 1 个“文件”,因为您把它放在那里有 2 条记录,您有一个 ZA8CFDE6331BD59EB66AC96F89111C4 记录。

AWS 提供了一个将 API 网关与 S3 集成的示例。

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

您不能将 S3 用于相同的用例没有根本原因。 S3 是一个 object 存储,这是给定单个密钥的另一种存储对象的方式。

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

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

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

Ashaman Kingpin,感谢您分享您的知识。 按照您列出的示例“将 API 网关与 S3 集成”,直到“公开 API 方法以列出调用者的 Amazon S3 存储桶”,我在“响应正文”中得到“AccessDenied”。 我已经确认我拥有该页面上带有黑色背景框的所有权限和信任策略。 有什么问题? 我在哪里可以解决问题? 非常感谢!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM