From 2ad31214949ee5be68de823e34490e27d726c12c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Sko=C5=99epa?= Date: Thu, 2 Aug 2018 20:09:12 +0200 Subject: [PATCH] Use actual hash instead of randomly generated string --- .../strapi-plugin-upload/services/Upload.js | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/packages/strapi-plugin-upload/services/Upload.js b/packages/strapi-plugin-upload/services/Upload.js index 1b28422278..f22fa4db68 100644 --- a/packages/strapi-plugin-upload/services/Upload.js +++ b/packages/strapi-plugin-upload/services/Upload.js @@ -9,7 +9,16 @@ const fs = require('fs'); const _ = require('lodash'); const toArray = require('stream-to-array'); -const uuid = require('uuid/v4'); +const crypto = require('crypto'); + +function niceHash(buffer) { + return crypto.createHash('sha256') + .update(buffer) + .digest('base64') + .replace(/=/g, '') + .replace(/\//g, '-') + .replace(/\+/, '_') +} module.exports = { bufferize: async files => { @@ -28,11 +37,13 @@ module.exports = { part => _.isBuffer(part) ? part : Buffer.from(part) ); + const buffer = Buffer.concat(buffers); + return { name: stream.name, - hash: uuid().replace(/-/g, ''), + hash: niceHash(buffer), ext: stream.name.split('.').length > 1 ? `.${_.last(stream.name.split('.'))}` : '', - buffer: Buffer.concat(buffers), + buffer, mime: stream.type, size: (stream.size / 1000).toFixed(2) };