Node-SDK Access Denied Загрузить файл в корзину S3: 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-3s, я получаю сообщение об ошибке: Отказано в доступе.

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. Какова средняя разница?


person codeGeass    schedule 14.07.2017    source источник
comment
Я не знаю, что должен делать var bucket = 'BucketWAR' + uuid.v4(), но это не может быть правильным.   -  person Michael - sqlbot    schedule 16.07.2017
comment
это позволяет присвоить ведру уникальное имя, но проблема была настолько глупой: после определения ведра я не использовал его: ведро: 'some-bucket' я должен указать: ведро: ведро, которое я определил с помощью ведра = 'BucketWAR' + uuid.v4()   -  person codeGeass    schedule 17.07.2017


Ответы (1)


Все правильно, за исключением того, что я использовал не ту переменную, глупая проблема, после определения ведра я ее не использовал:

  • ведро: 'какое-то ведро'

    Я должен поставить:

  • bucket: bucket

    который я определил с помощью Bucket = 'BucketWAR' + uuid.v4()

person codeGeass    schedule 17.07.2017