flow.js
fow.jsを使用してupload処理を書き、サーバーサイドはNodeJS+Express4.0にてアップロード完了後にStreamでファイルをひとまとめにし、S3へのアップロード処理をしています。
Node.js側の処理はほとんどサンプルと同じです。
flow.js のNodeJSサンプル
javascript
1var fs = require('fs'); 2var flow = require('./node-flow.js')('tmp'); 3..... 4app.get('/api/upload/', function (req, res) { 5 flow.get(req, function(status, filename, original_filename, identifier) { 6 7 if (status == 'found') { 8 status = 200; 9 } else { 10 status = 204; 11 } 12 res.status(status).send(); 13 }); 14}); 15app.post('/api/upload/', function (req, res) { 16 flow.post(req, function(status, filename, original_filename, identifier) { 17 if(status==='done'){ 18 var s = fs.createWriteStream('public/upload/' + req.files.file.name); 19 s.on('finish', function() { 20 flow.clean(identifier); 21 }); 22 23 flow.write(identifier, s, {end: true, 24 onDone : function(){ 25 //S3へのアップロード処理 26 upload(req,res); 27 } 28 }); 29 }else{ 30 res.status(status).send(); 31 } 32 }); 33 }); 34....
この仕様でローカルではうまく動くのですが、EC2では数十メガほどの大きめのファイルをアップロードすると
「net::ERR_CONNECTION_REFUSED」と出て、ajaxのPOST接続が途中で止まってしまいます。(小さいファイルであれば問題ありません。)
原因がわかる方はいらっしゃらないでしょうか・・・。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/09/16 04:28