mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2025-06-30 12:35:00 +02:00
Remove dependency express-fileupload
This commit is contained in:
parent
1dbfb5637a
commit
7aa7e662b2
20 changed files with 2782 additions and 23 deletions
42
server/libs/expressFileupload/memHandler.js
Normal file
42
server/libs/expressFileupload/memHandler.js
Normal file
|
@ -0,0 +1,42 @@
|
|||
const crypto = require('crypto');
|
||||
const { debugLog } = require('./utilities');
|
||||
|
||||
/**
|
||||
* memHandler - In memory upload handler
|
||||
* @param {Object} options
|
||||
* @param {String} fieldname
|
||||
* @param {String} filename
|
||||
* @returns {Object}
|
||||
*/
|
||||
module.exports = (options, fieldname, filename) => {
|
||||
const buffers = [];
|
||||
const hash = crypto.createHash('md5');
|
||||
let fileSize = 0;
|
||||
let completed = false;
|
||||
|
||||
const getBuffer = () => Buffer.concat(buffers, fileSize);
|
||||
|
||||
return {
|
||||
dataHandler: (data) => {
|
||||
if (completed === true) {
|
||||
debugLog(options, `Error: got ${fieldname}->${filename} data chunk for completed upload!`);
|
||||
return;
|
||||
}
|
||||
buffers.push(data);
|
||||
hash.update(data);
|
||||
fileSize += data.length;
|
||||
debugLog(options, `Uploading ${fieldname}->${filename}, bytes:${fileSize}...`);
|
||||
},
|
||||
getBuffer: getBuffer,
|
||||
getFilePath: () => '',
|
||||
getFileSize: () => fileSize,
|
||||
getHash: () => hash.digest('hex'),
|
||||
complete: () => {
|
||||
debugLog(options, `Upload ${fieldname}->${filename} completed, bytes:${fileSize}.`);
|
||||
completed = true;
|
||||
return getBuffer();
|
||||
},
|
||||
cleanup: () => { completed = true; },
|
||||
getWritePromise: () => Promise.resolve()
|
||||
};
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue