Sfoglia il codice sorgente

Fix aws-sdk persistor.

Also fix some typos.
Xavier Trochu 11 anni fa
parent
commit
7ef46a79a0

+ 13 - 9
services/filestore/app/coffee/AWSSDKPersistorManager.coffee

@@ -7,7 +7,7 @@ s3 = aws.S3()
 
 
 module.exports =
 module.exports =
   sendFile: (bucketName, key, fsPath, callback)->
   sendFile: (bucketName, key, fsPath, callback)->
-    logger.log bucketName:bucketName, key, "send file data to s3"
+    logger.log bucketName:bucketName, key:key, "send file data to s3"
     stream = fs.createReadStream fsPath
     stream = fs.createReadStream fsPath
     s3.putObject Bucket: bucketName, Key: key, Body: stream, (err, data) ->
     s3.putObject Bucket: bucketName, Key: key, Body: stream, (err, data) ->
       if err?
       if err?
@@ -15,18 +15,19 @@ module.exports =
       callback err
       callback err
 
 
   sendStream: (bucketName, key, stream, callback)->
   sendStream: (bucketName, key, stream, callback)->
-    logger.log bucketName:bucketName, key, "send file stream to s3"
+    logger.log bucketName:bucketName, key:key, "send file stream to s3"
     s3.putObject Bucket: bucketName, Key: key, Body: stream, (err, data) ->
     s3.putObject Bucket: bucketName, Key: key, Body: stream, (err, data) ->
       if err?
       if err?
         logger.err err: err, Bucket: bucketName, Key: key, "error sending file stream to s3"
         logger.err err: err, Bucket: bucketName, Key: key, "error sending file stream to s3"
       callback err
       callback err
 
 
   getFileStream: (bucketName, key, callback = (err, res)->)->
   getFileStream: (bucketName, key, callback = (err, res)->)->
-    logger.log bucketName:bucketName, key, "get file stream from s3"
+    logger.log bucketName:bucketName, key:key, "get file stream from s3"
     callback = _.once callback
     callback = _.once callback
-    stream = s3.getObject(Bucket:bucketName, Key: key).createReadStream()
-    stream.on 'response', (res) ->
-      callback null, res
+    request = s3.getObject(Bucket:bucketName, Key: key)
+    stream = request.createReadStream()
+    stream.on 'readable', () ->
+      callback null, stream
     stream.on 'error', (err) ->
     stream.on 'error', (err) ->
       logger.err err:err, bucketName:bucketName, key:key, "error getting file stream from s3"
       logger.err err:err, bucketName:bucketName, key:key, "error getting file stream from s3"
       callback err
       callback err
@@ -48,20 +49,23 @@ module.exports =
 
 
   deleteDirectory: (bucketName, key, callback)->
   deleteDirectory: (bucketName, key, callback)->
     logger.log bucketName:bucketName, key:key, "delete directory in s3"
     logger.log bucketName:bucketName, key:key, "delete directory in s3"
-    s3.listObjects {Bucket: bucketName, prefix: key}, (err, data) ->
+    s3.listObjects {Bucket: bucketName, Prefix: key}, (err, data) ->
       if err?
       if err?
         logger.err err:err, bucketName:bucketName, key:key, "something went wrong listing prefix in s3"
         logger.err err:err, bucketName:bucketName, key:key, "something went wrong listing prefix in s3"
         return callback err
         return callback err
+      if data.Contents.length == 0
+        logger.log bucketName:bucketName, key:key, "the directory is empty"
+        return callback()
       keys = _.map data.Contents, (entry)->
       keys = _.map data.Contents, (entry)->
         Key: entry.Key
         Key: entry.Key
-      s3.deleteMultiple
+      s3.deleteObjects
         Bucket: bucketName
         Bucket: bucketName
         Delete:
         Delete:
           Objects: keys
           Objects: keys
           Quiet: true
           Quiet: true
       , (err) ->
       , (err) ->
           if err?
           if err?
-            logger.err err:err, bucketName:bucketName, key:key, "something went wrong deleting directory in s3"
+            logger.err err:err, bucketName:bucketName, key:keys, "something went wrong deleting directory in s3"
           callback err
           callback err
 
 
   checkIfFileExists:(bucketName, key, callback)->
   checkIfFileExists:(bucketName, key, callback)->

+ 1 - 1
services/filestore/app/coffee/FileController.coffee

@@ -11,7 +11,7 @@ module.exports =
 		metrics.inc "getFile"
 		metrics.inc "getFile"
 		{key, bucket} = req
 		{key, bucket} = req
 		{format, style} = req.query
 		{format, style} = req.query
-		logger.log key:key, bucket:bucket, format:format, style:style, "reciving request to get file"
+		logger.log key:key, bucket:bucket, format:format, style:style, "receiving request to get file"
 		FileHandler.getFile bucket, key, {format:format,style:style}, (err, fileStream)->
 		FileHandler.getFile bucket, key, {format:format,style:style}, (err, fileStream)->
 			if err?
 			if err?
 				logger.err err:err, key:key, bucket:bucket, format:format, style:style, "problem getting file"
 				logger.err err:err, key:key, bucket:bucket, format:format, style:style, "problem getting file"

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

@@ -10,16 +10,16 @@ ImageOptimiser = require("./ImageOptimiser")
 module.exports =
 module.exports =
 
 
 	insertFile: (bucket, key, stream, callback)->
 	insertFile: (bucket, key, stream, callback)->
-		convetedKey = KeyBuilder.getConvertedFolderKey(key)
-		PersistorManager.deleteDirectory bucket, convetedKey, (error) ->
+		convertedKey = KeyBuilder.getConvertedFolderKey key
+		PersistorManager.deleteDirectory bucket, convertedKey, (error) ->
 			return callback(error) if error?
 			return callback(error) if error?
 			PersistorManager.sendStream bucket, key, stream, callback
 			PersistorManager.sendStream bucket, key, stream, callback
 
 
 	deleteFile: (bucket, key, callback)->
 	deleteFile: (bucket, key, callback)->
-		convetedKey = KeyBuilder.getConvertedFolderKey(key)
+		convertedKey = KeyBuilder.getConvertedFolderKey key
 		async.parallel [
 		async.parallel [
 			(done)-> PersistorManager.deleteFile bucket, key, done
 			(done)-> PersistorManager.deleteFile bucket, key, done
-			(done)-> PersistorManager.deleteDirectory bucket, convetedKey, done
+			(done)-> PersistorManager.deleteDirectory bucket, convertedKey, done
 		], callback
 		], callback
 
 
 	getFile: (bucket, key, opts = {}, callback)->
 	getFile: (bucket, key, opts = {}, callback)->
@@ -36,14 +36,14 @@ module.exports =
 			callback err, fileStream
 			callback err, fileStream
 
 
 	_getConvertedFile: (bucket, key, opts, callback)->
 	_getConvertedFile: (bucket, key, opts, callback)->
-		convetedKey = KeyBuilder.addCachingToKey(key, opts)
-		PersistorManager.checkIfFileExists bucket, convetedKey, (err, exists)=>
+		convertedKey = KeyBuilder.addCachingToKey key, opts
+		PersistorManager.checkIfFileExists bucket, convertedKey, (err, exists)=>
 			if exists
 			if exists
-				PersistorManager.getFileStream bucket, convetedKey, callback
+				PersistorManager.getFileStream bucket, convertedKey, callback
 			else
 			else
-				@_getConvertedFileAndCache bucket, key, convetedKey, opts, callback
+				@_getConvertedFileAndCache bucket, key, convertedKey, opts, callback
 
 
-	_getConvertedFileAndCache: (bucket, key, convetedKey, opts, callback)->
+	_getConvertedFileAndCache: (bucket, key, convertedKey, opts, callback)->
 		self = @
 		self = @
 		convertedFsPath = ""
 		convertedFsPath = ""
 		async.series [
 		async.series [
@@ -54,27 +54,27 @@ module.exports =
 			(cb)->
 			(cb)->
 				ImageOptimiser.compressPng convertedFsPath, cb
 				ImageOptimiser.compressPng convertedFsPath, cb
 			(cb)->
 			(cb)->
-				PersistorManager.sendFile bucket, convetedKey, convertedFsPath, cb
+				PersistorManager.sendFile bucket, convertedKey, convertedFsPath, cb
 		], (err)->
 		], (err)->
 			if err?
 			if err?
 				return callback(err)
 				return callback(err)
-			PersistorManager.getFileStream bucket, convetedKey, callback
+			PersistorManager.getFileStream bucket, convertedKey, callback
 
 
-	_convertFile: (bucket, origonalKey, opts, callback)->
-		@_writeS3FileToDisk bucket, origonalKey, (err, origonalFsPath)->
+	_convertFile: (bucket, originalKey, opts, callback)->
+		@_writeS3FileToDisk bucket, originalKey, (err, originalFsPath)->
 			done = (err, destPath)->
 			done = (err, destPath)->
 				if err?
 				if err?
-					logger.err err:err, bucket:bucket, origonalKey:origonalKey, opts:opts, "error converting file"
+					logger.err err:err, bucket:bucket, originalKey:originalKey, opts:opts, "error converting file"
 					return callback(err)
 					return callback(err)
-				LocalFileWriter.deleteFile origonalFsPath, ->
+				LocalFileWriter.deleteFile originalFsPath, ->
 				callback(err, destPath)
 				callback(err, destPath)
 
 
 			if opts.format?
 			if opts.format?
-				FileConverter.convert origonalFsPath, opts.format, done
+				FileConverter.convert originalFsPath, opts.format, done
 			else if opts.style == "thumbnail"
 			else if opts.style == "thumbnail"
-				FileConverter.thumbnail origonalFsPath, done
+				FileConverter.thumbnail originalFsPath, done
 			else if opts.style == "preview"
 			else if opts.style == "preview"
-				FileConverter.preview origonalFsPath, done
+				FileConverter.preview originalFsPath, done
 			else
 			else
 				throw new Error("should have specified opts to convert file with #{JSON.stringify(opts)}")
 				throw new Error("should have specified opts to convert file with #{JSON.stringify(opts)}")