Improve drive downloading (#4523)
* Improve drive file downloading * fix name * wtf crlf * semicolon
This commit is contained in:
parent
d38fc490ad
commit
de47a17be7
6 changed files with 22 additions and 4 deletions
|
@ -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();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue