我正在用使用亚马逊s3软件开发工具包的multer s3上传文件到数字海洋空间。我的凭证文件中有两个配置文件,该文件存储在我的机器中。如何指定要在代码中使用的凭据配置文件?我已经发现了如何使用纯来实现这一点,但不知道如何使用s3 s3来实现。这是我的上传代码和凭证文件的样子。
代码
const aws = require("aws-sdk");
const multer = require("multer");
const multerS3 = require("multer-s3");
const spaceEndPoint = new aws.Endpoint("ams3.digitaloceanspaces.com");
const s3 = new aws.S3({
endpoint:spaceEndPoint
})
const upload = multer({
storage:multerS3({
s3:s3,
bucket: "fileRepo",
contentType: multerS3.AUTO_CONTENT_TYPE,
acl:"public-read",
key:function(request, file, cb){
console.log(file);
cb(null, file.originalname);
}
})
}).array("upload",1);
router.post("uploadFile", function(req,res){
upload(req, res, function(error){
if(error){
console.log(error);
return res.redirect("/");
}
});
})
凭证文件
[default] ; default profile
aws_access_key_id = <DEFAULT_ACCESS_KEY_ID>
aws_secret_access_key = <DEFAULT_SECRET_ACCESS_KEY>
[personal-account] ; personal account profile
aws_access_key_id = <PERSONAL_ACCESS_KEY_ID>
aws_secret_access_key = <PERSONAL_SECRET_ACCESS_KEY>
如何编辑代码,使其使用个人帐户配置文件而不是默认配置文件?
发布于 2019-11-11 07:40:32
您还可以显式选择AWS Javascript SDK使用的配置文件,方法是在加载软件开发工具包之前设置process.env.AWS_PROFILE,或选择凭证提供程序,如下例所示:
var AWS = require('aws-sdk');
var credentials = new AWS.SharedIniFileCredentials({profile: 'personal-account'});
AWS.config.credentials = credentials;https://stackoverflow.com/questions/54171458
复制相似问题