diff --git a/index.js b/index.js index 9f2d497..68756e4 100644 --- a/index.js +++ b/index.js @@ -24,6 +24,7 @@ let packageJson = JSON.parse(fs.readFileSync('./package.json')); let logger = require('./libs/logger'); let path = require('path'); let async = require('async'); +let mime = require('mime'); let express = require('express'); let app = express(); @@ -315,9 +316,16 @@ app.get('/task/:uuid/download/:asset', getTaskFromUuid, (req, res) => { let asset = req.params.asset !== undefined ? req.params.asset : "all.zip"; let filePath = req.task.getAssetsArchivePath(asset); if (filePath){ - res.download(filePath, filePath, err => { - if (err) res.json({error: "Asset not ready"}); - }); + if (fs.existsSync(filePath)){ + res.setHeader('Content-Disposition', `attachment; filename=${asset}`); + res.setHeader('Content-Type', mime.lookup(asset)); + res.setHeader('Content-Length', fs.statSync(filePath)["size"]); + + const filestream = fs.createReadStream(filePath); + filestream.pipe(res); + }else{ + res.json({error: "Asset not ready"}); + } }else{ res.json({error: "Invalid asset"}); } diff --git a/libs/Task.js b/libs/Task.js index 7d992b5..aa79c24 100644 --- a/libs/Task.js +++ b/libs/Task.js @@ -231,6 +231,8 @@ module.exports = class Task{ const postProcess = () => { const createZipArchive = (outputFilename, files) => { return (done) => { + this.output.push(`Compressing ${outputFilename}`); + let output = fs.createWriteStream(this.getAssetsArchivePath(outputFilename)); let archive = archiver.create('zip', {}); @@ -296,7 +298,7 @@ module.exports = class Task{ const generateTiles = (inputFile, outputDir) => { return (done) => { this.tilingProcess = gdalRunner.runTiler({ - zoomLevels: "16-22", + zoomLevels: "16-21", inputFile: path.join(this.getProjectFolderPath(), inputFile), outputDir: path.join(this.getProjectFolderPath(), outputDir) }, (err, code, signal) => { diff --git a/package.json b/package.json index 291a9f3..b72c56f 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "body-parser": "^1.15.2", "express": "^4.14.0", "glob": "^7.1.1", + "mime": "^1.3.4", "minimist": "^1.2.0", "morgan": "^1.7.0", "multer": "^1.1.0",