summaryrefslogtreecommitdiff
path: root/src/server/file
diff options
context:
space:
mode:
authorMeiMei <30769358+mei23@users.noreply.github.com>2019-03-18 15:23:45 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2019-03-18 15:23:45 +0900
commitc2eec272e6b5f77f5f2fff7c9c11bc29ff176407 (patch)
treeb8a0f37896366da5b33ce3435d4745d99b29d2e3 /src/server/file
parentMerge branch 'develop' of https://github.com/syuilo/misskey into develop (diff)
downloadsharkey-c2eec272e6b5f77f5f2fff7c9c11bc29ff176407.tar.gz
sharkey-c2eec272e6b5f77f5f2fff7c9c11bc29ff176407.tar.bz2
sharkey-c2eec272e6b5f77f5f2fff7c9c11bc29ff176407.zip
Content-Disposition in ObjectStrage (#4524)
* Content-Disposition in ObjectStrage * encode filename
Diffstat (limited to 'src/server/file')
-rw-r--r--src/server/file/send-drive-file.ts11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/server/file/send-drive-file.ts b/src/server/file/send-drive-file.ts
index c57648bb7a..3f7533b82c 100644
--- a/src/server/file/send-drive-file.ts
+++ b/src/server/file/send-drive-file.ts
@@ -6,6 +6,7 @@ import DriveFile, { getDriveFileBucket } from '../../models/drive-file';
import DriveFileThumbnail, { getDriveFileThumbnailBucket } from '../../models/drive-file-thumbnail';
import DriveFileWebpublic, { getDriveFileWebpublicBucket } from '../../models/drive-file-webpublic';
import { serverLogger } from '..';
+import { contentDisposition } from '../../misc/content-disposition';
const assets = `${__dirname}/../../server/file/assets/`;
@@ -63,12 +64,12 @@ export default async function(ctx: Koa.BaseContext) {
if (thumb != null) {
ctx.set('Content-Type', 'image/jpeg');
- ctx.set('Content-Disposition', `filename="${rename(file.filename, { suffix: '-thumb', extname: '.jpeg' })}"`);
+ ctx.set('Content-Disposition', contentDisposition('inline', `${rename(file.filename, { suffix: '-thumb', extname: '.jpeg' })}"`));
const bucket = await getDriveFileThumbnailBucket();
ctx.body = bucket.openDownloadStream(thumb._id);
} else {
if (file.contentType.startsWith('image/')) {
- ctx.set('Content-Disposition', `filename="${file.filename}"`);
+ ctx.set('Content-Disposition', contentDisposition('inline', `${file.filename}"`));
await sendRaw();
} else {
ctx.status = 404;
@@ -82,17 +83,17 @@ export default async function(ctx: Koa.BaseContext) {
if (web != null) {
ctx.set('Content-Type', file.contentType);
- ctx.set('Content-Disposition', `filename="${rename(file.filename, { suffix: '-web' })}"`);
+ ctx.set('Content-Disposition', contentDisposition('inline', `${rename(file.filename, { suffix: '-web' })}"`));
const bucket = await getDriveFileWebpublicBucket();
ctx.body = bucket.openDownloadStream(web._id);
} else {
- ctx.set('Content-Disposition', `filename="${file.filename}"`);
+ ctx.set('Content-Disposition', contentDisposition('inline', `${file.filename}"`));
await sendRaw();
}
} else {
if ('download' in ctx.query) {
- ctx.set('Content-Disposition', `attachment; filename="${file.filename}`);
+ ctx.set('Content-Disposition', contentDisposition('attachment', `${file.filename}`));
}
await sendRaw();