summaryrefslogtreecommitdiff
path: root/packages/backend/src/server
diff options
context:
space:
mode:
authorJeDaYoshi <hi@jeda.im>2025-05-09 21:59:41 +0000
committerJeDaYoshi <hi@jeda.im>2025-05-09 21:59:41 +0000
commitf2998e05dc23400db5f7ca2c90f7911e204394b9 (patch)
treea8c258b6e0f187de050ec9bbdcf7646e368a87e4 /packages/backend/src/server
parentmerge: Pass token in Authorization header instead of body (!1003) (diff)
downloadsharkey-f2998e05dc23400db5f7ca2c90f7911e204394b9.tar.gz
sharkey-f2998e05dc23400db5f7ca2c90f7911e204394b9.tar.bz2
sharkey-f2998e05dc23400db5f7ca2c90f7911e204394b9.zip
properly announce Accept-Ranges on drive files
Diffstat (limited to 'packages/backend/src/server')
-rw-r--r--packages/backend/src/server/FileServerService.ts20
1 files changed, 16 insertions, 4 deletions
diff --git a/packages/backend/src/server/FileServerService.ts b/packages/backend/src/server/FileServerService.ts
index b8a72fedb9..34ef683983 100644
--- a/packages/backend/src/server/FileServerService.ts
+++ b/packages/backend/src/server/FileServerService.ts
@@ -195,6 +195,10 @@ export class FileServerService {
reply.header('Content-Length', file.file.size);
if (!image) {
+ if (file.file.size > 0) {
+ reply.header('Accept-Ranges', 'bytes');
+ }
+
if (request.headers.range && file.file.size > 0) {
const range = request.headers.range as string;
const parts = range.replace(/bytes=/, '').split('-');
@@ -215,7 +219,6 @@ export class FileServerService {
};
reply.header('Content-Range', `bytes ${start}-${end}/${file.file.size}`);
- reply.header('Accept-Ranges', 'bytes');
reply.header('Content-Length', chunksize);
reply.code(206);
} else {
@@ -257,6 +260,10 @@ export class FileServerService {
reply.header('Cache-Control', 'max-age=31536000, immutable');
reply.header('Content-Disposition', contentDisposition('inline', filename));
+ if (file.file.size > 0) {
+ reply.header('Accept-Ranges', 'bytes');
+ }
+
if (request.headers.range && file.file.size > 0) {
const range = request.headers.range as string;
const parts = range.replace(/bytes=/, '').split('-');
@@ -271,7 +278,6 @@ export class FileServerService {
end,
});
reply.header('Content-Range', `bytes ${start}-${end}/${file.file.size}`);
- reply.header('Accept-Ranges', 'bytes');
reply.header('Content-Length', chunksize);
reply.code(206);
return fileStream;
@@ -284,6 +290,10 @@ export class FileServerService {
reply.header('Cache-Control', 'max-age=31536000, immutable');
reply.header('Content-Disposition', contentDisposition('inline', file.filename));
+ if (file.file.size > 0) {
+ reply.header('Accept-Ranges', 'bytes');
+ }
+
if (request.headers.range && file.file.size > 0) {
const range = request.headers.range as string;
const parts = range.replace(/bytes=/, '').split('-');
@@ -298,7 +308,6 @@ export class FileServerService {
end,
});
reply.header('Content-Range', `bytes ${start}-${end}/${file.file.size}`);
- reply.header('Accept-Ranges', 'bytes');
reply.header('Content-Length', chunksize);
reply.code(206);
return fileStream;
@@ -442,6 +451,10 @@ export class FileServerService {
}
if (!image) {
+ if (file.file && file.file.size > 0) {
+ reply.header('Accept-Ranges', 'bytes');
+ }
+
if (request.headers.range && file.file && file.file.size > 0) {
const range = request.headers.range as string;
const parts = range.replace(/bytes=/, '').split('-');
@@ -462,7 +475,6 @@ export class FileServerService {
};
reply.header('Content-Range', `bytes ${start}-${end}/${file.file.size}`);
- reply.header('Accept-Ranges', 'bytes');
reply.header('Content-Length', chunksize);
reply.code(206);
} else {