Add in HEIC converter on uploaded images.

This commit is contained in:
Patrick Fic
2022-06-02 09:58:34 -07:00
parent 6173dc188d
commit 79899ff7e0
9 changed files with 1897 additions and 1821 deletions

View File

@@ -9,7 +9,6 @@ import { PathToRoFolder } from "../util/pathGenerators";
import { FolderPaths } from "../util/serverInit";
export async function JobsListMedia(req: Request, res: Response) {
console.time("JobsListMedia");
const jobid: string = (req.body.jobid || "").trim();
await fs.ensureDir(PathToRoFolder(jobid));
logger.debug("Listing media for job: " + PathToRoFolder(jobid));
@@ -73,7 +72,7 @@ export async function JobsListMedia(req: Request, res: Response) {
})
);
}
console.timeEnd("JobsListMedia");
res.json(ret);
} catch (error) {
logger.error("Error listing job media.", { jobid, error });

View File

@@ -7,6 +7,7 @@ import generateUniqueFilename from "../util/generateUniqueFilename";
import { PathToRoFolder } from "../util/pathGenerators";
import { JobsListMedia } from "./jobsListMedia";
import fs from "fs-extra";
import { ConvertHeicFiles } from "../util/heicConverter";
export const JobMediaUploadMulter = multer({
storage: multer.diskStorage({
@@ -31,7 +32,6 @@ export const JobMediaUploadMulter = multer({
});
export async function jobsUploadMedia(req: Request, res: Response) {
console.time("jobsUploadMedia");
const jobid: string = (req.body.jobid || "").trim();
try {
@@ -42,6 +42,14 @@ export async function jobsUploadMedia(req: Request, res: Response) {
message: "No file uploaded",
});
} else {
//If we want to skip waiting for everything, just send it back that we're good.
if (req.body.skip_thumbnail) {
res.sendStatus(200);
}
//Check if there's a heic in the file set. If so, modify the file set.
await ConvertHeicFiles(req.files as Express.Multer.File[]);
logger.debug(
"Creating thumbnails for newly uploaded media",
(req.files as Express.Multer.File[]).map((f) => f.filename)
@@ -55,15 +63,13 @@ export async function jobsUploadMedia(req: Request, res: Response) {
await Promise.all(thumbnailGenerationQueue);
console.timeEnd("jobsUploadMedia");
if (req.body.skip_thumbnail) {
res.sendStatus(200);
} else {
JobsListMedia(req, res);
}
JobsListMedia(req, res);
}
} catch (error) {
logger.error("Error uploading job media.", { jobid, error: error });
res.status(500).send(error);
logger.error("Error uploading job media.", {
jobid,
error: (error as Error).message,
});
res.status(500).json((error as Error).message);
}
}