收到的字节少于预期

时间:2019-01-31 12:58:34

标签: javascript node.js forms amazon-s3 formidable

我正在尝试将图像上传到Amazon S3。 我拥有的代码可以成功处理小尺寸(大约30KB)的图像,但是任何大于该尺寸的图像似乎都无法接收所有字节,因此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

如果有人可以在这里帮助我,告诉我我哪里出问题了,将不胜感激! 谢谢

0 个答案:

没有答案
相关问题