mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-21 20:47:08 -05:00
delete converted file when finished to clean up
This commit is contained in:
parent
94a6504635
commit
711e95a82a
6 changed files with 34 additions and 20 deletions
|
@ -2,7 +2,6 @@ PersistorManager = require("./PersistorManager")
|
|||
settings = require("settings-sharelatex")
|
||||
logger = require("logger-sharelatex")
|
||||
FileHandler = require("./FileHandler")
|
||||
LocalFileWriter = require("./LocalFileWriter")
|
||||
metrics = require("./metrics")
|
||||
oneDayInSeconds = 60 * 60 * 24
|
||||
|
||||
|
|
|
@ -7,7 +7,6 @@ KeyBuilder = require("./KeyBuilder")
|
|||
async = require("async")
|
||||
ImageOptimiser = require("./ImageOptimiser")
|
||||
|
||||
|
||||
module.exports =
|
||||
|
||||
insertFile: (bucket, key, stream, callback)->
|
||||
|
@ -45,28 +44,37 @@ module.exports =
|
|||
@_getConvertedFileAndCache bucket, key, convetedKey, opts, callback
|
||||
|
||||
_getConvertedFileAndCache: (bucket, key, convetedKey, opts, callback)->
|
||||
@_convertFile bucket, key, opts, (err, fsPath)->
|
||||
self = @
|
||||
convertedFsPath = ""
|
||||
async.series [
|
||||
(cb)->
|
||||
self._convertFile bucket, key, opts, (err, fileSystemPath)->
|
||||
convertedFsPath = fileSystemPath
|
||||
cb err
|
||||
(cb)->
|
||||
ImageOptimiser.compressPng convertedFsPath, cb
|
||||
(cb)->
|
||||
PersistorManager.sendFile bucket, convetedKey, convertedFsPath, cb
|
||||
], (err)->
|
||||
if err?
|
||||
logger.err err:err, fsPath:fsPath, bucket:bucket, key:key, opts:opts, "something went wrong with converting file"
|
||||
return callback(err)
|
||||
ImageOptimiser.compressPng fsPath, (err)->
|
||||
if err?
|
||||
logger.err err:err, fsPath:fsPath, bucket:bucket, key:key, opts:opts, "something went wrong optimising png file"
|
||||
return callback(err)
|
||||
PersistorManager.sendFile bucket, convetedKey, fsPath, (err)->
|
||||
if err?
|
||||
logger.err err:err, bucket:bucket, key:key, convetedKey:convetedKey, opts:opts, "something went wrong sending the file"
|
||||
return callback(err)
|
||||
PersistorManager.getFileStream bucket, convetedKey, callback
|
||||
PersistorManager.getFileStream bucket, convetedKey, callback
|
||||
|
||||
_convertFile: (bucket, origonalKey, opts, callback)->
|
||||
@_writeS3FileToDisk bucket, origonalKey, (err, origonalFsPath)->
|
||||
done = (err, destPath)->
|
||||
if err?
|
||||
logger.err err:err, bucket:bucket, origonalKey:origonalKey, opts:opts, "error converting file"
|
||||
return callback(err)
|
||||
LocalFileWriter.deleteFile origonalFsPath, ->
|
||||
callback(err, destPath)
|
||||
|
||||
if opts.format?
|
||||
FileConverter.convert origonalFsPath, opts.format, callback
|
||||
FileConverter.convert origonalFsPath, opts.format, done
|
||||
else if opts.style == "thumbnail"
|
||||
FileConverter.thumbnail origonalFsPath, callback
|
||||
FileConverter.thumbnail origonalFsPath, done
|
||||
else if opts.style == "preview"
|
||||
FileConverter.preview origonalFsPath, callback
|
||||
FileConverter.preview origonalFsPath, done
|
||||
else
|
||||
throw new Error("should have specified opts to convert file with #{JSON.stringify(opts)}")
|
||||
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
exec = require('child_process').exec
|
||||
logger = require("logger-sharelatex")
|
||||
|
||||
|
||||
module.exports =
|
||||
|
||||
compressPng: (localPath, callback)->
|
||||
|
|
|
@ -26,6 +26,7 @@ module.exports =
|
|||
callback err
|
||||
|
||||
deleteFile: (fsPath, callback)->
|
||||
logger.log fsPath:fsPath, "removing local temp file"
|
||||
fs.unlink fsPath, callback
|
||||
|
||||
_getPath : (key)->
|
||||
|
|
|
@ -45,7 +45,7 @@ module.exports =
|
|||
return callback(err)
|
||||
if !res?
|
||||
logger.err err:err, res:res, bucketName:bucketName, key:key, fsPath:fsPath, "no response from s3 put file"
|
||||
callback("no response from put file")
|
||||
return callback("no response from put file")
|
||||
if res.statusCode != 200
|
||||
logger.err bucketName:bucketName, key:key, fsPath:fsPath, "non 200 response from s3 putting file"
|
||||
return callback("non 200 response from s3 on put file")
|
||||
|
|
|
@ -22,6 +22,7 @@ describe "FileHandler", ->
|
|||
insertFile: sinon.stub()
|
||||
@LocalFileWriter =
|
||||
writeStream: sinon.stub()
|
||||
deleteFile: sinon.stub()
|
||||
@FileConverter =
|
||||
convert: sinon.stub()
|
||||
thumbnail: sinon.stub()
|
||||
|
@ -134,16 +135,18 @@ describe "FileHandler", ->
|
|||
describe "_getConvertedFileAndCache", ->
|
||||
|
||||
it "should _convertFile ", (done)->
|
||||
@stubbedStream = {"something":"here"}
|
||||
@PersistorManager.sendFile = sinon.stub().callsArgWith(3)
|
||||
@PersistorManager.getFileStream = sinon.stub().callsArgWith(2)
|
||||
@PersistorManager.getFileStream = sinon.stub().callsArgWith(2, null, @stubbedStream)
|
||||
@convetedKey = @key+"converted"
|
||||
@handler._convertFile = sinon.stub().callsArgWith(3, null, @stubbedPath)
|
||||
@ImageOptimiser.compressPng = sinon.stub().callsArgWith(1)
|
||||
@handler._getConvertedFileAndCache @bucket, @key, @convetedKey, {}, =>
|
||||
@handler._getConvertedFileAndCache @bucket, @key, @convetedKey, {}, (err, fsStream)=>
|
||||
@handler._convertFile.called.should.equal true
|
||||
@PersistorManager.sendFile.calledWith(@bucket, @convetedKey, @stubbedPath).should.equal true
|
||||
@PersistorManager.getFileStream.calledWith(@bucket, @convetedKey).should.equal true
|
||||
@ImageOptimiser.compressPng.calledWith(@stubbedPath).should.equal true
|
||||
fsStream.should.equal @stubbedStream
|
||||
done()
|
||||
|
||||
describe "_convertFile", ->
|
||||
|
@ -152,23 +155,27 @@ describe "FileHandler", ->
|
|||
@FileConverter.thumbnail.callsArgWith(1, null, @formattedStubbedPath)
|
||||
@FileConverter.preview.callsArgWith(1, null, @formattedStubbedPath)
|
||||
@handler._writeS3FileToDisk = sinon.stub().callsArgWith(2, null, @stubbedPath)
|
||||
@LocalFileWriter.deleteFile.callsArgWith(1)
|
||||
|
||||
it "should call thumbnail on the writer path if style was thumbnail was specified", (done)->
|
||||
@handler._convertFile @bucket, @key, style:"thumbnail", (err, path)=>
|
||||
path.should.equal @formattedStubbedPath
|
||||
@FileConverter.thumbnail.calledWith(@stubbedPath).should.equal true
|
||||
@LocalFileWriter.deleteFile.calledWith(@stubbedPath).should.equal true
|
||||
done()
|
||||
|
||||
it "should call preview on the writer path if style was preview was specified", (done)->
|
||||
@handler._convertFile @bucket, @key, style:"preview", (err, path)=>
|
||||
path.should.equal @formattedStubbedPath
|
||||
@FileConverter.preview.calledWith(@stubbedPath).should.equal true
|
||||
@LocalFileWriter.deleteFile.calledWith(@stubbedPath).should.equal true
|
||||
done()
|
||||
|
||||
it "should call convert on the writer path if a format was specified", (done)->
|
||||
@handler._convertFile @bucket, @key, format:@format, (err, path)=>
|
||||
path.should.equal @formattedStubbedPath
|
||||
@FileConverter.convert.calledWith(@stubbedPath, @format).should.equal true
|
||||
@LocalFileWriter.deleteFile.calledWith(@stubbedPath).should.equal true
|
||||
done()
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue