Ked*_*nde 4 amazon-s3 amazon-web-services node.js aws-lambda aws-api-gateway
我想使用 Nodejs 将 multipart/form-data 文件上传到 S3。
我尝试过各种方法,但没有一个有效。我能够从 lambda 将内容写入 S3,但是当从 S3 下载文件时,它已损坏。
有人可以为我提供一个可以帮助我的可行示例或步骤吗?
感谢你在期待。
如果您认为如此,请提出另一种选择。
以下是我的 lambda 代码:
export const uploadFile = async event => {
const parser = require("lambda-multipart-parser");
const result = await parser.parse(event);
const { content, filename, contentType } = result.files[0];
const params = {
Bucket: "name-of-the-bucket",
Key: filename,
Body: content,
ContentDisposition: `attachment; filename="${filename}";`,
ContentType: contentType,
ACL: "public-read"
};
const res = await s3.upload(params).promise();
return {
statusCode: 200,
body: JSON.stringify({
docUrl: res.Location
})
};
}
Run Code Online (Sandbox Code Playgroud)
如果想通过 lambda 上传文件,一种方法是打开 AWS API Gateway 控制台。
去
“API”-> {YourAPI}->“设置”
在那里您将找到“二进制媒体类型”部分。
添加以下媒体类型:
多部分/表单数据
保存您的更改。
然后转到“资源”->“代理方法”(例如“ANY”)->“方法请求”->“HTTP 请求标头”并添加以下标头“Content-Type”、“Accept”。
最后部署你的 api。
| 归档时间: |
|
| 查看次数: |
9854 次 |
| 最近记录: |