【发布时间】:2020-07-14 13:51:56
【问题描述】:
是否可以通过 API Gateway 将 JavaScript File Object 从浏览器传递到 AWS Lambda(最终传递到 S3)。我正在使用 TypeScript 和 React。
环境
前端
- 打字稿
- 反应
- AWS Amplify(使用 API 模块)
后端(AWS Lambda)
- Node.js
预期结果
将File Object(由<input type='file'>从浏览器获取)通过API网关传递给后端aws lambda。
发生了什么
console.log(event)在后端,日志输出为空。
我想知道的
如何正确地将File Object(Blob) 传递给 lambda。 (只是一个文档链接,它对我也很有帮助。)
代码(前端)
import { API } from 'aws-amplify'
...
const file = { body: this.state.file }
console.log(file) // output was collect File Object at this time
API.post(<API_NAME>, <PATH>, file)
.then(response => {
console.log(response)
}).catch(error => {
console.log(error)
})
代码(后端)
exports.lambdaHandler = function (event, context, callback) {
console.info(`event.body: ${event.body}`) // got `event.body: {}` at Cloud Watch Logs
...
}
我是否可以通过设置 Content-Type 或其他方式来尝试做些什么? (我找不到任何文档。我开始编程才一年)。
【问题讨论】:
-
这是一个非常好的、清晰且(可能)可以回答的问题。我已经从中删减了一些喋喋不休,但做得很好。
标签: javascript reactjs typescript aws-lambda