From 0c62991f68093fd59d00572ddbc74d9188f711c8 Mon Sep 17 00:00:00 2001 From: Liang <545073804@qq.com> Date: Fri, 29 Mar 2024 18:45:00 +0800 Subject: [PATCH 1/2] =?UTF-8?q?add=20=E6=96=B0=E5=A2=9E=E5=88=86=E7=89=87?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.development | 3 + .env.production | 3 + src/api/system/oss/index.ts | 15 ++- src/api/system/oss/types.ts | 23 ++++ src/components/FilePartUpload/index.vue | 149 ++++++++++++++++++++++++ src/views/system/oss/index.vue | 11 ++ 6 files changed, 203 insertions(+), 1 deletion(-) create mode 100644 src/components/FilePartUpload/index.vue diff --git a/.env.development b/.env.development index eb5837f..57f2614 100644 --- a/.env.development +++ b/.env.development @@ -33,3 +33,6 @@ VITE_APP_CLIENT_ID = 'e5cd7e4891bf95d1d19206ce24a7b32e' # websocket 开关 VITE_APP_WEBSOCKET = true + +# 文件上传分片大小 默认5M +VITE_FILE_UPLOAD_PART_SIZE = 5242880 diff --git a/.env.production b/.env.production index 26844c3..6b8b9f4 100644 --- a/.env.production +++ b/.env.production @@ -36,3 +36,6 @@ VITE_APP_CLIENT_ID = 'e5cd7e4891bf95d1d19206ce24a7b32e' # websocket 开关 VITE_APP_WEBSOCKET = true + +# 文件上传分片大小 默认5M +VITE_FILE_UPLOAD_PART_SIZE = 5242880 diff --git a/src/api/system/oss/index.ts b/src/api/system/oss/index.ts index 4472112..94b9c80 100644 --- a/src/api/system/oss/index.ts +++ b/src/api/system/oss/index.ts @@ -1,5 +1,5 @@ import request from '@/utils/request'; -import { OssQuery, OssVO } from './types'; +import { OssPartUploadVo, OssQuery, OssVO } from './types'; import { AxiosPromise } from 'axios'; // 查询OSS对象存储列表 @@ -26,3 +26,16 @@ export function delOss(ossId: string | number | Array) { method: 'delete' }); } + +// 分片上传 +export function partUpload(formData: FormData): AxiosPromise { + return request({ + url: '/resource/oss/part/upload', + method: 'post', + headers: { + // 关闭防重提交 + repeatSubmit: false + }, + data: formData + }); +} diff --git a/src/api/system/oss/types.ts b/src/api/system/oss/types.ts index bc0bc1f..817e498 100644 --- a/src/api/system/oss/types.ts +++ b/src/api/system/oss/types.ts @@ -20,3 +20,26 @@ export interface OssQuery extends PageQuery { export interface OssForm { file: undefined | string; } + +export interface OssPartUploadForm { + file: undefined | string; + uploadId: undefined | string; + fileName: undefined | string; + fileSize: undefined | number; + partNumber: undefined | number; + partSize: undefined | number; + totalParts: undefined | number; + needMerge: undefined | boolean; +} + +export interface OssPartInfo { + partNumber: undefined | number; + eTag: undefined | string; +} + +export interface OssPartUploadVo { + uploadId: undefined | string; + url: undefined | string; + partInfoList: undefined | Array; + mergeCompleted: undefined | boolean; +} diff --git a/src/components/FilePartUpload/index.vue b/src/components/FilePartUpload/index.vue new file mode 100644 index 0000000..e6dad24 --- /dev/null +++ b/src/components/FilePartUpload/index.vue @@ -0,0 +1,149 @@ + + + diff --git a/src/views/system/oss/index.vue b/src/views/system/oss/index.vue index 77c5dcd..9bf46ef 100644 --- a/src/views/system/oss/index.vue +++ b/src/views/system/oss/index.vue @@ -45,6 +45,9 @@ 上传图片 + + 分片上传 + 删除 @@ -118,6 +121,7 @@ +