IO-2086 Create optimized images.

This commit is contained in:
Patrick Fic
2022-10-24 12:43:41 -07:00
parent 3ef5d4200e
commit 32beabccb5
8 changed files with 107 additions and 42 deletions

View File

@@ -1,15 +1,9 @@
import { Request, Response } from "express";
import fs from "fs-extra";
import path from "path";
import { logger } from "../server";
import GenerateThumbnail from "../util/generateThumbnail";
import MediaFile from "../util/interfaces/MediaFile";
import ListableChecker from "../util/listableChecker";
import GenerateUrl from "../util/MediaUrlGen";
import { PathToRoFolder } from "../util/pathGenerators";
import { FolderPaths, JobRelativeFilePath } from "../util/serverInit";
import ft from "file-type";
import core from "file-type/core";
import { JobRelativeFilePath } from "../util/serverInit";
export async function JobsDeleteMedia(req: Request, res: Response) {
const jobid: string = (req.body.jobid || "").trim();

View File

@@ -1,15 +1,10 @@
import { Request, Response } from "express";
import fs from "fs-extra";
import multer from "multer";
import JSZip from "jszip";
import path from "path";
import { logger } from "../server";
import GenerateThumbnail from "../util/generateThumbnail";
import generateUniqueFilename from "../util/generateUniqueFilename";
import { ConvertHeicFiles } from "../util/heicConverter";
import { PathToRoFolder } from "../util/pathGenerators";
import { JobsListMedia } from "./jobsListMedia";
import JSZip from "jszip";
import ListableChecker from "../util/listableChecker";
import { PathToRoFolder } from "../util/pathGenerators";
import { JobRelativeFilePath } from "../util/serverInit";
//param: files: string[] | array of filenames.

View File

@@ -2,7 +2,9 @@ import { Request, Response } from "express";
import fs from "fs-extra";
import path from "path";
import { logger } from "../server";
import GenerateThumbnail from "../util/generateThumbnail";
import GenerateThumbnail, {
GenerateOptimized,
} from "../util/generateThumbnail";
import MediaFile from "../util/interfaces/MediaFile";
import ListableChecker from "../util/listableChecker";
import GenerateUrl from "../util/MediaUrlGen";
@@ -29,6 +31,9 @@ export async function JobsListMedia(req: Request, res: Response) {
const relativeThumbPath: string = await GenerateThumbnail(
relativeFilePath
);
const relativeOptimizedPath: string = await GenerateOptimized(
relativeFilePath
);
const type: core.FileTypeResult | undefined = await ft.fromFile(
relativeFilePath
@@ -49,6 +54,12 @@ export async function JobsListMedia(req: Request, res: Response) {
jobid,
relativeThumbPath,
]),
optimized: GenerateUrl([
FolderPaths.StaticPath,
FolderPaths.JobsFolder,
jobid,
relativeOptimizedPath,
]),
thumbnailHeight: 250,
thumbnailWidth: 250,
filename: file.filename,
@@ -73,6 +84,9 @@ export async function JobsListMedia(req: Request, res: Response) {
const relativeThumbPath: string = await GenerateThumbnail(
relativeFilePath
);
const relativeOptimizedPath: string = await GenerateOptimized(
relativeFilePath
);
const type: core.FileTypeResult | undefined = await ft.fromFile(
relativeFilePath
);
@@ -92,6 +106,12 @@ export async function JobsListMedia(req: Request, res: Response) {
jobid,
relativeThumbPath,
]),
optimized: GenerateUrl([
FolderPaths.StaticPath,
FolderPaths.JobsFolder,
jobid,
relativeOptimizedPath,
]),
thumbnailHeight: 250,
thumbnailWidth: 250,
filename: file.name,

View File

@@ -1,13 +1,10 @@
import { Request, Response } from "express";
import fs from "fs-extra";
import path from "path";
import GenerateThumbnail from "../util/generateThumbnail";
import GenerateUrl from "../util/MediaUrlGen";
import { FolderPaths } from "../util/serverInit";
import multer from "multer";
import { JobsListMedia } from "./jobsListMedia";
import { PathToRoFolder } from "../util/pathGenerators";
import { logger } from "../server";
import { PathToRoFolder } from "../util/pathGenerators";
import { FolderPaths } from "../util/serverInit";
import { JobsListMedia } from "./jobsListMedia";
export async function JobsMoveMedia(req: Request, res: Response) {
const jobid: string = (req.body.jobid || "").trim();

View File

@@ -3,7 +3,9 @@ import fs from "fs-extra";
import multer from "multer";
import path from "path";
import { logger } from "../server";
import GenerateThumbnail from "../util/generateThumbnail";
import GenerateThumbnail, {
GenerateOptimized,
} from "../util/generateThumbnail";
import generateUniqueFilename from "../util/generateUniqueFilename";
import { ConvertHeicFiles } from "../util/heicConverter";
import { PathToRoFolder } from "../util/pathGenerators";
@@ -60,6 +62,7 @@ export async function jobsUploadMedia(req: Request, res: Response) {
//for each file.path, generate the thumbnail.
(req.files as Express.Multer.File[]).forEach((file) => {
thumbnailGenerationQueue.push(GenerateThumbnail(file.path));
thumbnailGenerationQueue.push(GenerateOptimized(file.path));
});
await Promise.all(thumbnailGenerationQueue);