使用multer.js(upload.any)时上传图片卡住了

时间:2016-07-20 11:26:10

标签: node.js express amazon-ec2 ubuntu-14.04 multer

我遇到了各种奇怪的行为。我创建了一个简化问题的小测试 我有一个简单的POST休息API,它应该解析我作为multipart / form-data内容类型得到的图像。

这是服务器的重要代码部分:

var    upload = multer({
            storage: multer.memoryStorage(),
            limits: {
                files: 1,
                fileSize: 1024 * 1024 * 5// 5 MB
            }
        }).any();


app.post('/v(\\d+)/image', function (req, res) {
        upload(req, res, function (err) {
            if (err) {
                console.log('upload image to server failed-' + (err.code || err), `uploadImage`);
                res.status(500).json({err: (err.code || err)});
                return;
            }

console.log('upload image to server succeed');
    });

这是每隔x秒发布一次请求的测试:

var request = require('request');
var fs= require('fs');


    var  formData = {
        "image_context_type": 1,
        attachments: [
            fs.createReadStream(file_dir)
        ]
    };


for (i = 0; i < 10; i++) {

    setTimeout(function(){
    formData.image_uid = uuid.v4();

    request.post({
        url: 'http://<server ip>:8888/v1/image', formData: formData
    }, function (err, res, body) {
        console.log('err-' + err);
        console.log('res-' + res.statusCode);

    });
    }, 1000*i);
}

行为: 在1秒超时(1000毫秒)的情况下,只有我发送的第一个图像进入服务器回调上传部分(其余部分被卡住)。

在0秒超时(0毫秒)的情况下,我发送的所有图像都到达服务器回调上传部分(其余部分被卡住)。

这只发生在EC2 Ubuntu 14.04机器上,即使从同一台EC2机器(localhost)执行测试也是如此。我无法在我的开发本地VM上重现它。

0 个答案:

没有答案