Я хочу загрузить изображения на веб-сервер 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.