gpt4 book ai didi

node.js - 使用 AWS Lambda 上传到 AWS S3

转载 作者:太空宇宙 更新时间:2023-11-03 23:00:49 26 4
gpt4 key购买 nike

我使用node.js中的AWS Lambda和mongoDB数据库在AWS S3中上传图像,我使用以下代码使用aws s3上传图像:

    var fs = require('fs');
var AWS = require('aws-sdk');
var config = require('../../server/config');
var Busboy = require('busboy');
var busboyBodyParser = require('busboy-body-parser');
AWS.config.update({
accessKeyId: config.aws.accessKeyId,
secretAccessKey: config.aws.secretAccessKey,
region: config.aws.region
});
var s3 = new AWS.S3();

module.exports = function(app) {
app.use(busboyBodyParser());

app.post('/upload', function(req,res){
var directory = req.body.directory;
var image = req.files.file.name;
var contenttype = req.files.file.mimetype;
if(req.body.directory) {
var file = directory+'/'+image;
} else {
var file = image;
}
var data = req.files.file.data;
var keys = {
Bucket: req.body.bucket,
Key: file,
Body: data,
ACL: 'public-read',
ContentType: contenttype
};
s3.upload(keys, function(err, result) {
if (err) {
res.send({
isError:true,
status:400,
message:"File Not Uplaod",
data:err
});
} else {
var data = {
Location: result.Location,
key:result.key,
Bucket:result.Bucket
};
res.send({
isError:false,
status:200,
message:"File Uplaod",
data:data
});
}
});
});
}

在这段代码中,我在本地 aws s3 中上传图像成功,但使用 AWS Lambda 此代码不起作用

最佳答案

您需要为 lambda 设置 IAM 角色才能访问 AWS

您还需要为您的 S3 存储桶创建策略

然后将 S3 策略附加到 Lamba IAM 角色。

完成上述操作后,您的 Lambda 将能够访问 S3。

关于node.js - 使用 AWS Lambda 上传到 AWS S3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48576750/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com