2016-03-31 3 views
0

Я пытаюсь установить свой ключ доступа к Amazon AWS и тайну с помощью multer:Process.env не читает? Amazon S3 Bucket

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

Вы можете увидеть эти две переменные окружения, когда вы 'console.log (process.env)'? – Rabea

+0

В моей оболочке узла, когда я печатаю process.env, он отображает access_key и секрет –

+0

U может запускать его в начале или запускать его в отдельном файле, а затем 'node thatFile.js' или открывать консоль узла только с записью 'node' в терминале. он должен открыть оболочку узла, где вы можете запустить это ведение журнала – Rabea

ответ

1

Multer из коробки не поддерживает s3. Неверный способ создания нового объекта multer. Единственный доступный options при создании нового объекта multer: dest/storage, fileFilter и limits.

Если вы хотите использовать Multer с S3 напрямую, вы можете использовать multer-s3. С этим вы можете передать новый вариант storage, который займет secretAccessKey и ваш accessKeyId.

Если вы не используете multer-s3, то можете использовать multer с .

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