Получено байт меньше ожидаемого - PullRequest
0 голосов
/ 31 января 2019

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

Если бы кто-нибудь мог здесь помочь и показать мне, где я иду не так, это было бы очень признательно!Спасибо

...