Node-SDK Доступ запрещен Загрузить файл в S3 Bucket: putObject() VS multer-3s
Когда я пытаюсь использовать aws.s3(), все работает нормально, мое ведро создается с соответствующим ключом.
var s3 = new AWS.S3();
// Create a bucket and upload something into it
var bucketName = 'node-sdk-sample-' + uuid.v4();
var keyName = 'hello';
s3.createBucket({Bucket: bucketName}, function() {
var params = {Bucket: bucketName, Key: keyName,ACL: 'public-read'};
s3.putObject(params, function(err, data) {
if (err)
console.log(err)
else
console.log("Successfully uploaded data to " + bucketName + "/" + keyName);
});
});
Но когда я пытаюсь загрузить многокомпонентные данные с помощью multer-3, я получаю сообщение об ошибке: "Отказано в доступе".
var aws = require('aws-sdk')
var uuid = require('node-uuid')
var multer= require('multer')
var multerS3 = require('multer-s3')
var s3 = new aws.S3()
var bucket = 'BucketWAR' + uuid.v4()
var upload = multer({
storage: multerS3({
s3: s3,
bucket: 'some-bucket',
acl: 'public-read',
key: function (req, file, cb) {
cb(null, Date.now().toString())
}
})
})
router.get('/index', indexController.idex)
router.post('/uploadFile', upload.single('file'), function (req, res, next) {
res.send("Uploaded!");
});
Я не могу это исправить. Нужна ли политика? Но мне не нужно это для putObject. Какая средняя разница?
1 ответ
Все правильно, за исключением того, что я не использовал правильную переменную, глупая проблема, после определения сегмента я не использовал его:
ведро: "некоторое ведро"
Я должен поставить:
bucket: bucket
что я определил с помощью bucket = 'BucketWAR' + uuid.v4()