diff options
| author | MeiMei <30769358+mei23@users.noreply.github.com> | 2024-04-15 09:28:09 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-04-15 09:28:09 +0900 |
| commit | c687b4eaa558aa3138d81f8fa4d9bbc376d0bd6c (patch) | |
| tree | 61629baca76032057d047cebf538c83766f699b5 /packages/backend/src/server/FileServerService.ts | |
| parent | chore: Use integrity for Redoc script (#13716) (diff) | |
| download | sharkey-c687b4eaa558aa3138d81f8fa4d9bbc376d0bd6c.tar.gz sharkey-c687b4eaa558aa3138d81f8fa4d9bbc376d0bd6c.tar.bz2 sharkey-c687b4eaa558aa3138d81f8fa4d9bbc376d0bd6c.zip | |
fix(backend): nginx経由で/files/にRangeリクエストされた場合に正しく応答できないのを修正 (#13712)
* Fix files
* CHANGELOG
Diffstat (limited to 'packages/backend/src/server/FileServerService.ts')
| -rw-r--r-- | packages/backend/src/server/FileServerService.ts | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/packages/backend/src/server/FileServerService.ts b/packages/backend/src/server/FileServerService.ts index ce7702143e..9db3aa1bfb 100644 --- a/packages/backend/src/server/FileServerService.ts +++ b/packages/backend/src/server/FileServerService.ts @@ -214,6 +214,8 @@ export class FileServerService { } reply.header('Content-Type', FILE_TYPE_BROWSERSAFE.includes(image.type) ? image.type : 'application/octet-stream'); + reply.header('Content-Length', file.file.size); + reply.header('Cache-Control', 'max-age=31536000, immutable'); reply.header('Content-Disposition', contentDisposition( 'inline', @@ -256,6 +258,7 @@ export class FileServerService { return fs.createReadStream(file.path); } else { reply.header('Content-Type', FILE_TYPE_BROWSERSAFE.includes(file.file.type) ? file.file.type : 'application/octet-stream'); + reply.header('Content-Length', file.file.size); reply.header('Cache-Control', 'max-age=31536000, immutable'); reply.header('Content-Disposition', contentDisposition('inline', file.filename)); @@ -530,9 +533,7 @@ export class FileServerService { if (!file.storedInternal) { if (!(file.isLink && file.uri)) return '204'; const result = await this.downloadAndDetectTypeFromUrl(file.uri); - if (!file.size) { - file.size = (await fs.promises.stat(result.path)).size; - } + file.size = (await fs.promises.stat(result.path)).size; // DB file.sizeは正確とは限らないので return { ...result, url: file.uri, |