diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2019-03-18 13:30:13 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2019-03-18 13:30:13 +0900 |
| commit | bd720491a9ba0d36500abcc3a46fcccdcf1ca871 (patch) | |
| tree | f4df2c63c94a2d90243d66e586b9a6d64afc598f /src/server/file | |
| parent | Refactor (diff) | |
| parent | Improve drive downloading (#4523) (diff) | |
| download | sharkey-bd720491a9ba0d36500abcc3a46fcccdcf1ca871.tar.gz sharkey-bd720491a9ba0d36500abcc3a46fcccdcf1ca871.tar.bz2 sharkey-bd720491a9ba0d36500abcc3a46fcccdcf1ca871.zip | |
Merge branch 'develop' of https://github.com/syuilo/misskey into develop
Diffstat (limited to 'src/server/file')
| -rw-r--r-- | src/server/file/send-drive-file.ts | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/server/file/send-drive-file.ts b/src/server/file/send-drive-file.ts index 691d3bf848..c57648bb7a 100644 --- a/src/server/file/send-drive-file.ts +++ b/src/server/file/send-drive-file.ts @@ -1,6 +1,7 @@ import * as Koa from 'koa'; import * as send from 'koa-send'; import * as mongodb from 'mongodb'; +import * as rename from 'rename'; import DriveFile, { getDriveFileBucket } from '../../models/drive-file'; import DriveFileThumbnail, { getDriveFileThumbnailBucket } from '../../models/drive-file-thumbnail'; import DriveFileWebpublic, { getDriveFileWebpublicBucket } from '../../models/drive-file-webpublic'; @@ -62,10 +63,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' })}"`); const bucket = await getDriveFileThumbnailBucket(); ctx.body = bucket.openDownloadStream(thumb._id); } else { if (file.contentType.startsWith('image/')) { + ctx.set('Content-Disposition', `filename="${file.filename}"`); await sendRaw(); } else { ctx.status = 404; @@ -79,15 +82,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' })}"`); const bucket = await getDriveFileWebpublicBucket(); ctx.body = bucket.openDownloadStream(web._id); } else { + ctx.set('Content-Disposition', `filename="${file.filename}"`); await sendRaw(); } } else { if ('download' in ctx.query) { - ctx.set('Content-Disposition', 'attachment'); + ctx.set('Content-Disposition', `attachment; filename="${file.filename}`); } await sendRaw(); |