diff options
| author | MeiMei <30769358+mei23@users.noreply.github.com> | 2019-03-18 15:23:45 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2019-03-18 15:23:45 +0900 |
| commit | c2eec272e6b5f77f5f2fff7c9c11bc29ff176407 (patch) | |
| tree | b8a0f37896366da5b33ce3435d4745d99b29d2e3 /src/server/file | |
| parent | Merge branch 'develop' of https://github.com/syuilo/misskey into develop (diff) | |
| download | sharkey-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.ts | 11 |
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(); |