From 57329e4472c97cad14b3c2eef8f93c720fb77ada Mon Sep 17 00:00:00 2001 From: coderaiser Date: Fri, 2 Aug 2013 15:57:04 +0000 Subject: [PATCH] feature(rest) add zip --- lib/server/rest.js | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/lib/server/rest.js b/lib/server/rest.js index e323f287..4bb9f9ab 100644 --- a/lib/server/rest.js +++ b/lib/server/rest.js @@ -18,6 +18,7 @@ path = main.path, Util = main.util, CloudFunc = main.cloudfunc, + zlib = main.zlib, dir = main.dir, OK = 200, Header = main.generateHeaders({ @@ -141,7 +142,26 @@ else main.sendError(pParams, pError); }); - else { + else if (lQuery === 'zip') { + lReadStream = fs.createReadStream(p.name); + lWriteStream = fs.createWriteStream(p.name + '.zip'); + + lError = function(pError) { + main.sendError(pParams, pError); + }; + + lWriteStream.on('error', lError); + lReadStream.on('error', lError); + + lWriteStream.on('open', function() { + lReadStream.pipe(zlib.createGzip()).pipe(lWriteStream); + //p.request.pipe(process.stdout); + lReadStream.on('end', function() { + var lName = path.basename(p.name) + '.zip'; + main.sendResponse(pParams, 'save: ok("' + lName +'")'); + }); + }); + } else { lWriteStream = fs.createWriteStream(p.name); lError = function(pError) {