From aa23c1da56f0c40591671af7a3ea5936c06620f4 Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Wed, 3 Jun 2015 11:45:47 -0300 Subject: [PATCH] md5 check for doc lines --- services/docstore/app/coffee/DocArchiveManager.coffee | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/services/docstore/app/coffee/DocArchiveManager.coffee b/services/docstore/app/coffee/DocArchiveManager.coffee index f04e1b125a..206dc929f5 100644 --- a/services/docstore/app/coffee/DocArchiveManager.coffee +++ b/services/docstore/app/coffee/DocArchiveManager.coffee @@ -25,9 +25,14 @@ module.exports = DocArchive = logger.log project_id: project_id, doc_id: doc._id, "sending doc to s3" options = DocArchive.buildS3Options(doc.lines, project_id+"/"+doc._id) request.put options, (err, res)-> + md5lines = crypto.createHash("md5").update(JSON.stringify(doc.lines)).digest("hex") + md5response = res.headers.etag.toString().replace(/\"/g, '') if err? || res.statusCode != 200 logger.err err:err, res:res, "something went wrong archiving doc in aws" return callback new Errors.NotFoundError("Error in S3 request") + if md5lines != md5response + logger.err responseMD5:md5response, linesMD5:md5lines, "error in response md5 from s3" + return callback new Errors.NotFoundError("Error in S3 md5 response") MongoManager.markDocAsArchived doc._id, doc.rev, (error) -> return callback(error) if error? callback() @@ -66,6 +71,6 @@ module.exports = DocArchive = timeout: thirtySeconds json: content #headers: - # 'content-md5': crypto.createHash("md5").update(content).digest("hex") + # 'content-md5': crypto.createHash("md5").update(JSON.stringify(content)).digest("hex") uri:"https://#{settings.filestore.stores.user_files}.s3.amazonaws.com/#{key}" } \ No newline at end of file