簡體   English   中英

通過托管在 ElasticBeansStalk 上的 API 網關在 AWS S3 上上傳圖像

[英]Upload image on AWS S3 through API Gateway hosted on ElasticBeansStalk

我在 elasticbeanstalk 上部署了一個 REST API,它將圖像上傳到 s3 存儲桶上。

REST API寫在node.js,前端在Reactjs。

當我調用 REST API 托管在 elasticbeanstalk 上時,它可以在 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>

這是正確顯示的文件。 它是通過直接從本地主機或彈性 beantalk 調用 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 網關上傳文件時文件損壞或訪問被拒絕。

有人可以幫我嗎?

通過在 api 網關中添加二進制媒體類型來解決此問題。 類型應該是“multipart/form-data”

添加二進制媒體類型

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM