Process.env 不读书?亚马逊 S3 桶

Process.env not reading? Amazon S3 Bucket

我正在尝试使用 multer 设置我的 Amazon AWS 访问密钥和密码:

var upload = multer({
secretAccessKey: process.env.AWS_ACCESS_SECRET,
accessKeyId: process.env.AWS_ACCESS_KEY,
})

在我的 zshrc 文件中我已经完成了

export AWS_ACCESS_SECRET="mysecret"
export AWS_ACCESS_KEY="mykey"

但是在 运行 节点上,我收到错误

 if (!opts.secretAccessKey) throw new Error('secretAccessKey is required')

然而,对密钥和秘密进行硬编码使其有效,但显然这不是最安全的方法。

我已经完成 source ~/.zshrc 但它仍然显示错误。

开箱即用的 Multer 不支持 s3。您创建新 multer 对象的方式不正确。创建新的 multer 对象时唯一可用的 optionsdest/storagefileFilterlimits

如果你想直接在S3中使用Multer,你可以使用multer-s3。有了它,您可以传入一个新选项 storage,它将带走您的 secretAccessKeyaccessKeyId.

如果您不使用 multer-s3,您可以将 multeraws-sdkS3 Client.

一起使用
var multer = require('multer');
var AWS = require('aws-sdk');

var accessKeyId = process.env.AWS_ACCESS_KEY;
var secretAccessKey = process.env.AWS_ACCESS_SECRET;

var upload = multer({dest: '/temp'});       
var s3 = new AWS.S3({
  accessKeyId: accessKeyId,
  secretAccessKey: secretAccessKey
});