summaryrefslogtreecommitdiff
path: root/packages/backend/src/server/api
diff options
context:
space:
mode:
authorsyuilo <4439005+syuilo@users.noreply.github.com>2024-08-23 16:29:05 +0900
committersyuilo <4439005+syuilo@users.noreply.github.com>2024-08-23 16:29:05 +0900
commitf85aa7b6415eaf61d213deb370f598f603f3fe9b (patch)
treeee3dbede0b8e778bb7b62c9b3210882942a89a1e /packages/backend/src/server/api
parentbetter boot error screen (diff)
downloadsharkey-f85aa7b6415eaf61d213deb370f598f603f3fe9b.tar.gz
sharkey-f85aa7b6415eaf61d213deb370f598f603f3fe9b.tar.bz2
sharkey-f85aa7b6415eaf61d213deb370f598f603f3fe9b.zip
fix(backend): ファイルがサイズの制限を超えてアップロードされた際にエラーを返さなかった問題を修正
Diffstat (limited to 'packages/backend/src/server/api')
-rw-r--r--packages/backend/src/server/api/ApiCallService.ts10
1 files changed, 9 insertions, 1 deletions
diff --git a/packages/backend/src/server/api/ApiCallService.ts b/packages/backend/src/server/api/ApiCallService.ts
index 47f64f6609..ea852d590d 100644
--- a/packages/backend/src/server/api/ApiCallService.ts
+++ b/packages/backend/src/server/api/ApiCallService.ts
@@ -199,9 +199,17 @@ export class ApiCallService implements OnApplicationShutdown {
return;
}
- const [path] = await createTemp();
+ const [path, cleanup] = await createTemp();
await stream.pipeline(multipartData.file, fs.createWriteStream(path));
+ // ファイルサイズが制限を超えていた場合
+ if (multipartData.file.truncated) {
+ cleanup();
+ reply.code(413);
+ reply.send();
+ return;
+ }
+
const fields = {} as Record<string, unknown>;
for (const [k, v] of Object.entries(multipartData.fields)) {
fields[k] = typeof v === 'object' && 'value' in v ? v.value : undefined;