node.js - 通过 ElasticBeansStalk 上托管的 API Gateway 在 AWS S3 上上传图像
问题描述
我在 elasticbeanstalk 上部署了一个 REST API,它将图像上传到 s3 存储桶上。
REST API 使用 node.js 编写,前端使用 Reactjs。
当我调用托管在 elasticbeanstalk 上的 REST API 时,它可以将文件上传到 s3。上传后,文件可访问并正确显示。
我还在本地主机上部署了 REST API,并上传了文件。它工作正常。上传的文件正确显示。
或者,我也用 elasticbeanstalk 配置了 API 网关。当我通过 API 网关调用相同的 REST API 并且可以在 s3 上上传文件时。上传后,该文件在存储桶上可用,但不知何故该文件未正确打开。该文件似乎已损坏。这可能是访问策略的问题。
我也有一次在文件上看到这个问题
<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>10292CE4C4D62A301</RequestId>
<HostId>XJjQBB3DwB6H0lVkS5cHpj3D9ysTa9tApFaacsklg6MGFEnRwyRWLgnVojM8jY3TpCZ6/NQfMogg=</HostId>
</Error>
这是正确显示的文件。它是通过直接从本地主机或弹性 beanstalk 调用 REST API 上传的。 https://images-for-naradej.s3.amazonaws.com/2021-01-14T23%3A39%3A49.938Z-largebanner.jpg
这是未显示的文件。通过调用连接到 Elastic beanstalk 的 API Gateway 上传。 https://images-for-naradej.s3.amazonaws.com/2021-01-14T23%3A46%3A23.030Z-largebanner.jpg
当我通过 API 网关上传文件时,我不确定为什么文件损坏或访问被拒绝。
有人可以帮我吗?
解决方案
推荐阅读
- algorithm - 整合孤立森林中的缺失值
- ios - 如何从 tableview 框架中调用 tableview 单元格单击事件?
- java - Angular 前端、Java 后端在 Docker 上的最佳部署模式
- javascript - Fullcalendar json 许多来源
- python - Pandas 转换为大写会产生额外的一行
- azure - 将 Azure 块 blob 复制到 Azure 文件共享?
- c# - 在 Xamarin 主项目的 Android 工具栏中显示/隐藏 ImageView
- c# - Windows 服务中的计时器 .. 这个规模可以吗?会不会出现线程问题?这是不好的做法吗?
- c# - 在 C# 中的位图中查找位图 - 在服务器上不起作用?
- javascript - 如何在 JavaScript 中制作自动点击器?