diff options
| author | tamaina <tamaina@hotmail.co.jp> | 2019-03-18 13:20:49 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2019-03-18 13:20:49 +0900 |
| commit | de47a17be7ce541fcd5c8ee698c2ef4aa926b5fb (patch) | |
| tree | 667cc893d415dad545d5bf6a054fa7ce67982f1f /src/server/file/send-drive-file.ts | |
| parent | 10.97.2 (diff) | |
| download | sharkey-de47a17be7ce541fcd5c8ee698c2ef4aa926b5fb.tar.gz sharkey-de47a17be7ce541fcd5c8ee698c2ef4aa926b5fb.tar.bz2 sharkey-de47a17be7ce541fcd5c8ee698c2ef4aa926b5fb.zip | |
Improve drive downloading (#4523)
* Improve drive file downloading
* fix name
* wtf crlf
* semicolon
Diffstat (limited to 'src/server/file/send-drive-file.ts')
| -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(); |