From 89cab66898f4edb238eee2321564337034dfa2bc Mon Sep 17 00:00:00 2001 From: Hazelnoot Date: Tue, 6 May 2025 18:26:33 -0400 Subject: fix multipart/form-data decoding --- packages/backend/src/misc/create-temp.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'packages/backend/src/misc') diff --git a/packages/backend/src/misc/create-temp.ts b/packages/backend/src/misc/create-temp.ts index 6cc896046f..fda63c7a9d 100644 --- a/packages/backend/src/misc/create-temp.ts +++ b/packages/backend/src/misc/create-temp.ts @@ -3,6 +3,8 @@ * SPDX-License-Identifier: AGPL-3.0-only */ +import { pipeline } from 'node:stream/promises'; +import fs from 'node:fs'; import * as tmp from 'tmp'; export function createTemp(): Promise<[string, () => void]> { @@ -27,3 +29,14 @@ export function createTempDir(): Promise<[string, () => void]> { ); }); } + +export async function saveToTempFile(stream: NodeJS.ReadableStream): Promise { + const [filepath, cleanup] = await createTemp(); + try { + await pipeline(stream, fs.createWriteStream(filepath)); + return filepath; + } catch (e) { + cleanup(); + throw e; + } +} -- cgit v1.2.3-freya