fix: use file-type for mime sniffing

This commit is contained in:
Peter Steinberger
2025-12-20 19:13:50 +01:00
parent 1356498ee1
commit 36c85a617a
14 changed files with 5291 additions and 91 deletions

View File

@@ -126,7 +126,7 @@ export async function saveMediaSource(
tempDest,
headers,
);
const mime = detectMime({
const mime = await detectMime({
buffer: sniffBuffer,
headerMime,
filePath: source,
@@ -147,7 +147,7 @@ export async function saveMediaSource(
throw new Error("Media exceeds 5MB limit");
}
const buffer = await fs.readFile(source);
const mime = detectMime({ buffer, filePath: source });
const mime = await detectMime({ buffer, filePath: source });
const ext = extensionForMime(mime) ?? path.extname(source);
const id = ext ? `${baseId}${ext}` : baseId;
const dest = path.join(dir, id);
@@ -169,7 +169,7 @@ export async function saveMediaBuffer(
const dir = path.join(MEDIA_DIR, subdir);
await fs.mkdir(dir, { recursive: true });
const baseId = crypto.randomUUID();
const mime = detectMime({ buffer, headerMime: contentType });
const mime = await detectMime({ buffer, headerMime: contentType });
const ext = extensionForMime(mime);
const id = ext ? `${baseId}${ext}` : baseId;
const dest = path.join(dir, id);