summaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2019-03-18 13:30:13 +0900
committersyuilo <syuilotan@yahoo.co.jp>2019-03-18 13:30:13 +0900
commitbd720491a9ba0d36500abcc3a46fcccdcf1ca871 (patch)
treef4df2c63c94a2d90243d66e586b9a6d64afc598f /src/server
parentRefactor (diff)
parentImprove drive downloading (#4523) (diff)
downloadsharkey-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')
-rw-r--r--src/server/file/send-drive-file.ts7
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();