Просмотр исходного кода

Merge branch 'master' of github.com:sharelatex/filestore-sharelatex

Henry Oswald 12 лет назад
Родитель
Сommit
088e494c30

+ 4 - 1
services/filestore/app/coffee/FSPersistorManager.coffee

@@ -60,7 +60,10 @@ module.exports =
     filteredName = filterName name
     filteredName = filterName name
     fs.rmdir "#{location}/#{filteredName}", (err) ->
     fs.rmdir "#{location}/#{filteredName}", (err) ->
       logger.err err:err, location:location, name:filteredName, "Error on rmdir."
       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)->)->
   checkIfFileExists:(location, name, callback = (err,exists)->)->
     filteredName = filterName name
     filteredName = filterName name

+ 3 - 3
services/filestore/app/coffee/FileHandler.coffee

@@ -11,9 +11,9 @@ module.exports =
 
 
 	insertFile: (bucket, key, stream, callback)->
 	insertFile: (bucket, key, stream, callback)->
 		convetedKey = KeyBuilder.getConvertedFolderKey(key)
 		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)->
 	deleteFile: (bucket, key, callback)->
 		convetedKey = KeyBuilder.getConvertedFolderKey(bucket, key)
 		convetedKey = KeyBuilder.getConvertedFolderKey(bucket, key)

+ 7 - 1
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"
 				logger.err err:err, res:res, bucketName:bucketName, key:key, "something went wrong deleting file in aws"
 			callback(err)
 			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
 		s3Client = knox.createClient
 			key: settings.filestore.s3.key
 			key: settings.filestore.s3.key
 			secret: settings.filestore.s3.secret
 			secret: settings.filestore.s3.secret