использование aws-sdk для загрузки изображений на s3 с использованием nodejs

Я хочу загрузить изображения на веб-сервер amazon, и для этого я использую aws-sdk с nodejs.

Я могу загрузить изображения в корзину s3, но когда я нажимаю на URL, чтобы получить к ним доступ, я получаю сообщение об ошибке отказа в доступе.

Вот моя конфигурация

     var AWS = require('aws-sdk');

     //aws credentials
     AWS.config = new AWS.Config();
     AWS.config.accessKeyId = "<access_key>";
     AWS.config.secretAccessKey = "<secret_key>";
     AWS.config.region = "ap-southeast-1";
     AWS.config.apiVersions = {
        "s3": "2006-03-01"
     }

    var s3 = new AWS.S3();

    var bodystream = fs.createReadStream(req.files.pic.path);

    var params = {
        'Bucket': '<bucket_name>',
        'Key': 'uploads/images/' + req.files.pic.name,
        'Body': bodystream,
        'ContentEncoding': 'base64', 
        'ContentType ': 'image/jpeg'
     };

     //also tried with s3.putObject
     s3.upload(params, function(err, data){
        console.log('after s3 upload====', err, data);
     }) 

Изображения загружаются успешно, но их тип контента - application / octet. Также я думаю, что есть некоторая проблема с разрешениями, потому что, когда я добавляю новое разрешение, я могу загрузить изображение, но не могу его увидеть.

Можете ли вы сказать мне, что не так с этой конфигурацией, а также я хочу узнать разницу между s3.upload и методом s3.putObject.

10
задан Bhushan Goel 30 October 2015 в 07:15
поделиться