diff options
| author | syuilo <4439005+syuilo@users.noreply.github.com> | 2024-08-23 16:29:05 +0900 |
|---|---|---|
| committer | syuilo <4439005+syuilo@users.noreply.github.com> | 2024-08-23 16:29:05 +0900 |
| commit | f85aa7b6415eaf61d213deb370f598f603f3fe9b (patch) | |
| tree | ee3dbede0b8e778bb7b62c9b3210882942a89a1e /packages/backend/src/server/api | |
| parent | better boot error screen (diff) | |
| download | sharkey-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.ts | 10 |
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; |