Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 建议:扁平铁,强大和aws s3_Node.js_Amazon S3_Flatiron.js_Formidable - Fatal编程技术网

Node.js 建议:扁平铁,强大和aws s3

Node.js 建议:扁平铁,强大和aws s3,node.js,amazon-s3,flatiron.js,formidable,Node.js,Amazon S3,Flatiron.js,Formidable,我是node.js服务器端编程新手。我现在正在用它组装一个小小的网络应用程序,让创业公司像往常一样学习如何做。下面的代码可以工作。但我很想知道,从表单上传一个简单的文件并将其放入aws s3,这或多或少是一种正确的方式: app.router.post('/form', { stream: true }, function () { var req = this.req, res = this.res, form = new formidable.Inc

我是node.js服务器端编程新手。我现在正在用它组装一个小小的网络应用程序,让创业公司像往常一样学习如何做。下面的代码可以工作。但我很想知道,从表单上传一个简单的文件并将其放入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中关闭缓冲区

我想学习的是,何时流式加载文件以及何时同步加载文件。这将是一个非常小的网络应用程序,流量很小


如果它或多或少是好的,那么请考虑这是一个工作代码的标志,我也会把它放在一个要点。要找到这类东西的文档和工作示例并不容易。我非常喜欢熨斗。但它的小模块方法会导致网络上到处都是散乱的文档和示例,更不用说教程了。

您应该使用其他模块,而不是Knowledge,因为据我所知,Knowledge没有s3存储选项,那么您必须在上传文件之前将文件保存在服务器中。 我建议您使用:

使用此选项可以直接上传到S3,而无需将其保存在服务器本地