From 6c50b9d2d8bcff7a1cb236078a863a8e7b46037c Mon Sep 17 00:00:00 2001 From: Mehmet Bektas Date: Wed, 7 Dec 2016 16:59:36 -0500 Subject: [PATCH 1/2] fix for file name length limit problem --- app/models/formats/ogr.js | 5 +++-- app/models/formats/ogr/shp.js | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/models/formats/ogr.js b/app/models/formats/ogr.js index 29d0a7c18..eee57ebb5 100644 --- a/app/models/formats/ogr.js +++ b/app/models/formats/ogr.js @@ -32,12 +32,12 @@ OgrFormat.prototype = { getFileExtension: function(){ return this._fileExtension; }, getKey: function(options) { - return [this.id, + return this.generateMD5([this.id, options.dbopts.dbname, options.dbopts.user, options.gn, this.generateMD5(options.filename), - this.generateMD5(options.sql)].concat(options.skipfields).join(':'); + this.generateMD5(options.sql)].concat(options.skipfields).join(':')); }, generateMD5: function (data){ @@ -227,6 +227,7 @@ OgrFormat.prototype.toOGR_SingleFile = function(options, fmt, callback) { this.generateMD5(layername), this.generateMD5(sql) ].concat(skipfields).join(':'); + reqKey = this.generateMD5(reqKey); var outdirpath = tmpdir + '/sqlapi-' + process.pid + '-' + reqKey; var dumpfile = outdirpath + ':cartodb-query.' + ext; diff --git a/app/models/formats/ogr/shp.js b/app/models/formats/ogr/shp.js index 4dd59f354..8fbec3a98 100644 --- a/app/models/formats/ogr/shp.js +++ b/app/models/formats/ogr/shp.js @@ -36,6 +36,7 @@ ShpFormat.prototype.toSHP = function (options, callback) { var zip = 'zip'; // FIXME: make configurable var tmpdir = global.settings.tmpDir || '/tmp'; var reqKey = [ 'shp', dbname, user_id, gcol, this.generateMD5(sql) ].concat(skipfields).join(':'); + reqKey = this.generateMD5(reqKey); var outdirpath = tmpdir + '/sqlapi-' + process.pid + '-' + reqKey; var zipfile = outdirpath + '.zip'; var shapefile = outdirpath + '/' + filename + '.shp'; From 0989100cf39648b8dbf433976c72d6a64b1e003e Mon Sep 17 00:00:00 2001 From: Mehmet Bektas Date: Thu, 8 Dec 2016 10:36:49 -0500 Subject: [PATCH 2/2] use md5 once --- app/models/formats/ogr.js | 13 ++++++------- app/models/formats/ogr/shp.js | 3 +-- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/app/models/formats/ogr.js b/app/models/formats/ogr.js index eee57ebb5..22a2363d3 100644 --- a/app/models/formats/ogr.js +++ b/app/models/formats/ogr.js @@ -36,8 +36,8 @@ OgrFormat.prototype = { options.dbopts.dbname, options.dbopts.user, options.gn, - this.generateMD5(options.filename), - this.generateMD5(options.sql)].concat(options.skipfields).join(':')); + options.filename, + options.sql].concat(options.skipfields).join(':')); }, generateMD5: function (data){ @@ -219,15 +219,14 @@ OgrFormat.prototype.toOGR_SingleFile = function(options, fmt, callback) { var layername = options.filename; var tmpdir = global.settings.tmpDir || '/tmp'; - var reqKey = [ + var reqKey = this.generateMD5([ fmt, dbname, user_id, gcol, - this.generateMD5(layername), - this.generateMD5(sql) - ].concat(skipfields).join(':'); - reqKey = this.generateMD5(reqKey); + layername, + sql + ].concat(skipfields).join(':')); var outdirpath = tmpdir + '/sqlapi-' + process.pid + '-' + reqKey; var dumpfile = outdirpath + ':cartodb-query.' + ext; diff --git a/app/models/formats/ogr/shp.js b/app/models/formats/ogr/shp.js index 8fbec3a98..d38e5a242 100644 --- a/app/models/formats/ogr/shp.js +++ b/app/models/formats/ogr/shp.js @@ -35,8 +35,7 @@ ShpFormat.prototype.toSHP = function (options, callback) { var fmtObj = this; var zip = 'zip'; // FIXME: make configurable var tmpdir = global.settings.tmpDir || '/tmp'; - var reqKey = [ 'shp', dbname, user_id, gcol, this.generateMD5(sql) ].concat(skipfields).join(':'); - reqKey = this.generateMD5(reqKey); + var reqKey = this.generateMD5([ 'shp', dbname, user_id, gcol, sql ].concat(skipfields).join(':')); var outdirpath = tmpdir + '/sqlapi-' + process.pid + '-' + reqKey; var zipfile = outdirpath + '.zip'; var shapefile = outdirpath + '/' + filename + '.shp';