amazon-web-services - 我应该使用 API 网关作为 S3 的代理吗?
问题描述
我正在学习无服务器架构,目前正在阅读Martin Fowler 博客上的这篇文章。
所以我看到了这个方案,并尝试用 AWS 解决方案替换抽象组件。我想知道不使用 API 网关来控制对 S3 的访问是否是一个好主意(在图像上,2 号数据库没有使用它)。Martin 谈到了 Google Firebase,我不熟悉它与 S3 的比较。
https://martinfowler.com/articles/serverless/sps.svg
将 S3 暴露给客户端应用程序而不将 API 网关配置为它们之间的代理是一种常见的策略吗?
解决方案
Aws S3 不是数据库,它是对象存储服务。
可以公开访问 S3 存储桶,但不建议这样做,但是您可以通过 CLI 或 SDK 使用 S3 API 访问其对象。
回到评论中关于是否直接从前端使用 API(假设您的意思是使用 JS)肯定是一种不好的做法的问题,因为 AWS 强烈建议您安全地存储您的 API 凭证(密钥),并作为任何 AWS API 调用应该包括 AWS 为您的 IAM 用户提供的 API 凭证(密钥),那么显然任何使用您的 Web 应用程序的人都可以看到这些密钥。
希望这回答了你的问题。
推荐阅读
- html - Cron 编辑器不显示单选按钮
- java - 如何从 Glide 记录每个请求 url?
- python - 如何使用正则表达式在python中的特定字符串后查找带逗号的数字?
- javascript - 我正在将 excel 表转换为 JSON 对象。虽然从 excel 转换日期给了我一些随机数。如何将其转换为 JSON 中的日期
- python - 将 Unicode 更改为 Str 返回“不支持”
- python - 在计算机关闭之前修改变量的值?
- javascript - 根据第一个下拉值清除第二个下拉值
- python - 如何使用python找到文件中连续数字的路径?
- java - 更改 recyclerview 中最后几个项目的跨度计数
- node.js - 使用 node 启动应用程序可以工作,但不能使用 yarn 或 npm