【问题标题】:Process.env not reading? Amazon S3 BucketProcess.env 不读取?亚马逊 S3 存储桶
【发布时间】:2016-03-31 19:15:36
【问题描述】:

我正在尝试使用 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 但它仍然显示错误。

【问题讨论】:

  • console.log(process.env)时能看到这两个环境变量吗?
  • 在我的节点外壳中,当我输入 process.env 时,它会显示 access_key 和 secret
  • 你可以在开头运行它或者在一个单独的文件上运行它然后node thatFile.js,或者在终端中写node打开一个节点控制台。它应该打开一个节点外壳,您可以在其中运行该日志记录
  • 在我的节点外壳中,当我输入 process.env 时,它会显示 access_key 和 secret
  • opts 有这两个作为对象中的项目?

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


【解决方案1】:

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

如果你想直接使用 Multer 和 S3,你可以使用multer-s3。有了它,您可以传入一个新选项 storage,它将采用您的 secretAccessKey 和您的 accessKeyId

如果您不使用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
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-03
    • 1970-01-01
    • 2019-09-05
    • 2011-06-26
    • 1970-01-01
    • 2012-11-15
    • 2013-05-23
    • 1970-01-01
    相关资源
    最近更新 更多