建议:熨斗、强大和 aws s3

Posted

技术标签:

【中文标题】建议:熨斗、强大和 aws s3【英文标题】:Advice: flatiron, formidable and aws s3 【发布时间】:2013-02-02 02:17:28 【问题描述】:

我是使用 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 中关闭缓冲区。

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

如果它或多或少好,请将此视为工作代码的象征,我也会将其纳入要点。找到这类东西的文档和工作示例并不容易。我非常喜欢熨斗。但它的小模块方法导致网络上到处都是飞溅的文档和示例,仅谈教程。

【问题讨论】:

【参考方案1】:

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

使用此example 可以直接上传到 S3,而无需将其本地保存在您的服务器中。

【讨论】:

以上是关于建议:熨斗、强大和 aws s3的主要内容,如果未能解决你的问题,请参考以下文章

针对单个存储桶的读取和写入权限的 AWS S3 IAM 策略

静态网站托管中子域的 AWS S3 存储桶重定向与 DNS CNAME

使用 AWS S3 与 Cloudfront

aws S3使用总结

我如何使用 aws lambda 将文件写入 s3 (python)?

如何在 AWS S3 生命周期过期前缀规则中使用正则表达式