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

时间:2016-03-31 19:15:36

标签: node.js amazon-s3 environment-variables multer zshrc

我正在尝试使用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')

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

我已经完成了源〜/ .zshrc,但它仍然显示错误。

1 个答案:

答案 0 :(得分:1)

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

如果您想直接使用Multer和S3,可以使用multer-s3。有了它,您可以传递一个新选项storage,该选项会占用您的secretAccessKeyaccessKeyId

如果您不使用multer-s3,则可以multer S3 Client使用aws-sdk

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
});