2013-02-17 41 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而不保存在您的本地服務器。