123456789101112131415161718192021222324252627282930313233343536373839404142 |
- import { Context } from 'koa';
- import config from '@config';
- import { FileUploaderServer } from '@utils/bigFileSlice';
- import CODE from '@utils/code';
- const fileUploader = new FileUploaderServer();
- const initUpload = async (ctx: Context): Promise<void> => {
- const { name } = ctx.query;
- const uploadId = await fileUploader.initFilePartUpload(name);
- ctx.body = ctx.$response({ uploadId });
- };
- const uploadPart = async (ctx:Context): Promise<void> => {
- const { buffer } = ctx.file;
- const { uploadId, partIndex } = ctx.request.body;
- if (!uploadId || uploadId === 'undefined') {
- ctx.status = 400;
- ctx.body = ctx.$response(null, '必填项参数缺失', false, CODE.MISS_PARAMS);
- }
- const {
- partFileMd5,
- partIndex: index
- } = await fileUploader.uploadPartFile(uploadId, partIndex, buffer);
- console.log({ partFileMd5, index });
- ctx.body = ctx.$response({ partFileMd5, index });
- };
- const finishUpload = async (ctx:Context): Promise<void> => {
- const { uploadId, name, md5 } = ctx.query;
- const { path: filePathOnServer } = await fileUploader
- .finishFilePartUpload(uploadId, name, md5);
- const suffixDir = config.bigFileUpload.suffixDir;
- const suffix = filePathOnServer.split(`/${suffixDir}/`)[1];
- ctx.body = ctx.$response({ path: suffix });
- };
- export default {
- initUpload,
- uploadPart,
- finishUpload
- };
|