Я пытаюсь загрузить изображения в Amazon S3.У меня есть код, успешно работающий с изображениями небольшого размера (около 30 КБ), однако, если что-то больше этого и он не получает все байты, функция form.parse не выполняется и изображение не загружается вS3.
Я искал в Google решение, но не могу найти ничего похожего на мою проблему!
var formidable = require('formidable');
var fs = require('fs');
var s3 = new AWS.S3({apiVersion: '2006-03-01', params: {Bucket: '[my-bucket-name]'}});
var form = new formidable.IncomingForm();
form.maxFileSize = 500 * 1024 * 1024;
form.on('progress', function(bytesReceived, bytesExpected){
console.log("received = " + bytesReceived);
console.log("expected = " + bytesExpected);
});
form.on('error', function(err) {
console.log(err);
});
form.parse(req, function (err, fields, files) {
console.log("test");
var playerID = fields.PlayerID;
console.log("ID = " + playerID);
var uploadfilepath = files.playerpic.path;
console.log('File Location: ' + uploadfilepath);
fs.readFile(uploadfilepath, function(err, file_buffer){
if (err) { console.log(err); }
//Set parameters for uploading to S3
var paramsS3 = {
Bucket: '[my-bucket-name]',
Key: playerID + "_" + n.toString(),
Body: file_buffer
};
//Upload image to S3
s3.upload(paramsS3, function(err, data){
if (err) { return console.log(err); }
console.log("We updated the bucket with this: " + JSON.stringify(data));
});
});
});
Это набор типичных результатов, которые я получаю, когда изображение выигралоне загружается на S3, но я не могу понять, почему не принимаются все байты.
получено = 1081
ожидается = 200507
получено = 17081
Ожидается = 200507
Если бы кто-нибудь мог здесь помочь и показать мне, где я иду не так, это было бы очень признательно!Спасибо