2013-02-17 20 views
3

我是新与node.js中服务器端编程我现在坚持一个小小的Web应用程序,并有通常的启动学习。下面的代码片WORKS。但我很想知道,如果它或多或少地从一种形式做一个简单的文件上传,把它扔进AWS S3正确的方式:建议:烙铁,强大和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)'); 
     } 
    }); 
}); 

注:我不得不把工会/烙铁缓存关闭。 plugins.http。

我想学习的是,当流加载文件时syncload它。这将是一个非常小的web应用程序,流量很小。

如果是或多或少好,那么请考虑这个作为工作的代码,我也投进一个要点的令牌。找到这种东西的文档和工作例子并不容易。我很喜欢熨斗。但它的小模数方法导致大量的飞溅文档和例子都过网,独自教程发言。

回答

0

你应该使用其他模块比艰巨因为据我知道厉害不具备S3存储选项,则必须在服务器上的文件上传之前保存。 我建议你使用:multiparty

使用此example为了直接上传到S3而不保存在您的本地服务器。