diff --git a/services/filestore/app/coffee/FSPersistorManager.coffee b/services/filestore/app/coffee/FSPersistorManager.coffee index 032d4edb29..cbdad516d6 100644 --- a/services/filestore/app/coffee/FSPersistorManager.coffee +++ b/services/filestore/app/coffee/FSPersistorManager.coffee @@ -60,7 +60,10 @@ module.exports = filteredName = filterName name fs.rmdir "#{location}/#{filteredName}", (err) -> logger.err err:err, location:location, name:filteredName, "Error on rmdir." - callback err + if err and err.code != 'ENOENT' + callback err + else + callback() checkIfFileExists:(location, name, callback = (err,exists)->)-> filteredName = filterName name diff --git a/services/filestore/app/coffee/FileHandler.coffee b/services/filestore/app/coffee/FileHandler.coffee index aa9602b5a8..8968470300 100644 --- a/services/filestore/app/coffee/FileHandler.coffee +++ b/services/filestore/app/coffee/FileHandler.coffee @@ -11,9 +11,9 @@ module.exports = insertFile: (bucket, key, stream, callback)-> convetedKey = KeyBuilder.getConvertedFolderKey(key) - PersistorManager.deleteDirectory bucket, convetedKey, -> - PersistorManager.sendStream bucket, key, stream, -> - callback() + PersistorManager.deleteDirectory bucket, convetedKey, (error) -> + return callback(error) if error? + PersistorManager.sendStream bucket, key, stream, callback deleteFile: (bucket, key, callback)-> convetedKey = KeyBuilder.getConvertedFolderKey(bucket, key) diff --git a/services/filestore/app/coffee/S3PersistorManager.coffee b/services/filestore/app/coffee/S3PersistorManager.coffee index 432294ced6..703241920d 100644 --- a/services/filestore/app/coffee/S3PersistorManager.coffee +++ b/services/filestore/app/coffee/S3PersistorManager.coffee @@ -100,7 +100,13 @@ module.exports = logger.err err:err, res:res, bucketName:bucketName, key:key, "something went wrong deleting file in aws" callback(err) - deleteDirectory: (bucketName, key, callback)-> + deleteDirectory: (bucketName, key, _callback)-> + # deleteMultiple can call the callback multiple times so protect against this. + callback = (args...) -> + _callback(args...) + _callback = () -> + + logger.log key: key, bucketName: bucketName, "deleting directory" s3Client = knox.createClient key: settings.filestore.s3.key secret: settings.filestore.s3.secret