add comment about upsert and locking

This commit is contained in:
Brian Gough 2018-03-23 15:07:08 +00:00
parent baec4eb195
commit cdfa2de68d

View file

@ -261,6 +261,11 @@ module.exports = ProjectEntityUpdateHandler = self =
return callback(err) if err?
callback null, doc, !existingDoc?
# FIXME: this method needs to be changed, currently it needs a lock around an upload to S3 because
# there is no way to know in advance if the file is a replace or an insert (at least you have to
# take the lock to find that out and do any operation in that lock). In the new scheme any upsert
# should always create the new file (outside the lock) in S3 first and then make the changes to the
# project in a lock, marking the old file as deleted if it exists.
upsertFile: wrapWithLock (project_id, folder_id, fileName, fsPath, linkedFileData, userId, callback = (err, file, isNewFile)->)->
ProjectLocator.findElement project_id: project_id, element_id: folder_id, type: "folder", (error, folder) ->
return callback(error) if error?