建议:熨斗,强大和aws s3

时间:2013-02-17 15:55:38

标签: node.js amazon-s3 flatiron.js formidable

我是使用node.js进行服务器端编程的新手。我现在正在将一个小小的webapp与它结合在一起并且让通常的初学者学习。以下代码 WORKS 。但我很想知道它是否或多或少是从表单上传文件并将其投入aws s3的正确方法:

app.router.post('/form', { stream: true }, function () {

    var req = this.req,
        res = this.res,
        form = new formidable.IncomingForm();

    form
    .parse(req, function(err, fields, files) {
        console.log('Parsed file upload' + err);
        if (err) {
            res.end('error: Upload failed: ' + err);
        } else {
            var img = fs.readFileSync(files.image.path);
            var data = {
                Bucket: 'le-bucket',
                Key:    files.image.name,
                Body:   img
            };
            s3.client.putObject(data, function() {
                console.log("Successfully uploaded data to myBucket/myKey");
            });
            res.end('success: Uploaded file(s)');
        }
    });
});

注意:我必须在union / flatiron.plugins.http中关闭缓冲区。

我想学习的是,何时流加载文件以及何时同步加载文件。它将是一个非常小的webapp,流量很小。

如果它或多或少好,那么请将此视为工作代码的标记,我也会将其放入一个要点。找到这种东西的文档和工作示例并不容易。我很喜欢熨斗。但是它的小模块方法会导致网络上出现大量的文档和示例,单独讲授教程。

1 个答案:

答案 0 :(得分:0)

你应该使用除强大之外的其他模块,因为据我所知,强大的没有s3存储选项,你必须在上传之前将文件保存在服务器中。 我建议你使用:multiparty

使用此example直接上传到S3,而不在服务器中本地保存。