diff options
author | bobzel <zzzman@gmail.com> | 2023-09-10 16:54:19 -0400 |
---|---|---|
committer | bobzel <zzzman@gmail.com> | 2023-09-10 16:54:19 -0400 |
commit | b42680588ed48d57f497ff15a18a693bb7ecb9b8 (patch) | |
tree | 23e908bbbd01324dfde207887f565d0ca654775f | |
parent | 06b48b08425972d4c0ae57615173d70d12aeb5bd (diff) |
instrumented pdf uploads
-rw-r--r-- | src/server/ApiManagers/UploadManager.ts | 3 | ||||
-rw-r--r-- | src/server/DashUploadUtils.ts | 12 |
2 files changed, 14 insertions, 1 deletions
diff --git a/src/server/ApiManagers/UploadManager.ts b/src/server/ApiManagers/UploadManager.ts index c264803bd..854911277 100644 --- a/src/server/ApiManagers/UploadManager.ts +++ b/src/server/ApiManagers/UploadManager.ts @@ -64,11 +64,13 @@ export default class UploadManager extends ApiManager { subscription: '/uploadFormData', secureHandler: async ({ req, res }) => { const form = new formidable.IncomingForm(); + console.log('RECEIVED form: '); form.keepExtensions = true; form.uploadDir = pathToDirectory(Directory.parsed_files); return new Promise<void>(resolve => { form.parse(req, async (_err, _fields, files) => { const results: Upload.FileResponse[] = []; + console.log('Parsed files: '); if (_err?.message) { results.push({ source: { @@ -84,6 +86,7 @@ export default class UploadManager extends ApiManager { for (const key in files) { const f = files[key]; if (!Array.isArray(f)) { + console.log('uploading file...', f.name); const result = await DashUploadUtils.upload(f, key); // key is the guid used by the client to track upload progress. result && !(result.result instanceof Error) && results.push(result); } diff --git a/src/server/DashUploadUtils.ts b/src/server/DashUploadUtils.ts index 1f23ae8c1..5187d0d6f 100644 --- a/src/server/DashUploadUtils.ts +++ b/src/server/DashUploadUtils.ts @@ -282,6 +282,7 @@ export namespace DashUploadUtils { } async function UploadPdf(file: File) { + console.log('upload pdf', file.name); const fileKey = (await md5File(file.path)) + '.pdf'; const textFilename = `${fileKey.substring(0, fileKey.length - 4)}.txt`; if (fExists(fileKey, Directory.pdfs) && fExists(textFilename, Directory.text)) { @@ -290,16 +291,25 @@ export namespace DashUploadUtils { const textFilename = `${fileKey.substring(0, fileKey.length - 4)}.txt`; const readStream = createReadStream(serverPathToFile(Directory.text, textFilename)); var rawText = ''; - readStream.on('data', chunk => (rawText += chunk.toString())).on('end', () => res(resolveExistingFile(file.name, fileKey, Directory.pdfs, file.type, undefined, rawText))); + console.log('reading stream', file); + readStream + .on('data', chunk => { + console.log('Got chunk:' + chunk.size); + rawText += chunk.toString(); + }) + .on('end', () => res(resolveExistingFile(file.name, fileKey, Directory.pdfs, file.type, undefined, rawText))); }); } const dataBuffer = readFileSync(file.path); const result: ParsedPDF | any = await parse(dataBuffer).catch((e: any) => e); if (!result.code) { await new Promise<void>((resolve, reject) => { + console.log('Got text write stream', file.name); const writeStream = createWriteStream(serverPathToFile(Directory.text, textFilename)); writeStream.write(result?.text, error => (error ? reject(error) : resolve())); + console.log('write text stream', file.name); }); + console.log('moving', file.name); return MoveParsedFile(file, Directory.pdfs, undefined, result?.text, undefined, fileKey); } return { source: file, result: { name: 'faile pdf pupload', message: `Could not upload (${file.name}).${result.message}` } }; |