![](/img/trans.png)
[英]Stream uploading file to S3 on Node.js using formidable and (knox or aws-sdk)
[英]Advice: flatiron, formidable and aws s3
我是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,流量很小。
如果它或多或少好,那么請將此視為工作代碼的標記,我也會將其放入一個要點。 找到這種東西的文檔和工作示例並不容易。 我很喜歡熨斗。 但它的小模塊方法導致了大量的文檔和示例遍布網絡,單獨講授教程。
您應該使用除強大之外的其他模塊,因為據我所知,強大的沒有s3存儲選項,那么您必須在上傳之前將文件保存在服務器中。 我建議你使用: multiparty
使用此示例可直接上載到S3,而無需在服務器中本地保存。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.