From 7d2e98cb052237aebb810bd1961443142fe7fe52 Mon Sep 17 00:00:00 2001 From: AprilWind <2100166581@qq.com> Date: Mon, 2 Dec 2024 18:22:04 +0800 Subject: [PATCH 1/2] =?UTF-8?q?update=20=E5=88=9D=E6=AC=A1=E6=8F=90?= =?UTF-8?q?=E4=BA=A4=E5=88=86=E7=89=87=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 3 +- src/components/PartUpload/index.vue | 104 ++++++++++++++++++++++++++++ src/utils/partUpload.ts | 74 ++++++++++++++++++++ 3 files changed, 180 insertions(+), 1 deletion(-) create mode 100644 src/components/PartUpload/index.vue create mode 100644 src/utils/partUpload.ts diff --git a/package.json b/package.json index b911cd65..b3d5e331 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,8 @@ "vue-json-pretty": "2.4.0", "vue-router": "4.4.5", "vue-types": "5.1.3", - "vxe-table": "4.5.22" + "vxe-table": "4.5.22", + "hash-wasm": "^4.12.0" }, "devDependencies": { "@eslint/js": "9.15.0", diff --git a/src/components/PartUpload/index.vue b/src/components/PartUpload/index.vue new file mode 100644 index 00000000..d1bd99b7 --- /dev/null +++ b/src/components/PartUpload/index.vue @@ -0,0 +1,104 @@ + + + diff --git a/src/utils/partUpload.ts b/src/utils/partUpload.ts new file mode 100644 index 00000000..b524264d --- /dev/null +++ b/src/utils/partUpload.ts @@ -0,0 +1,74 @@ +import axios from 'axios'; + +export const httpInstance = axios.create({ + baseURL: '/api', + timeout: 10000 +}); + +export interface MultipartBo { + + /** + * 分片类型(必传) + */ + ossStatus: 'initiate' | 'upload' | 'query' | 'complete'; + + /** + * 文件原名(分片初始化的时候使用) + */ + originalName?: string; + + /** + * 用于分片上传任务的 Upload ID + * 在初始化分片上传时获取,并在后续的分片上传和完成上传过程中使用 + */ + uploadId?: string; + + /** + * 分片编号(从1开始递增) + */ + partNumber?: number; + + /** + * 内容的 MD5 摘要 + * initiate初始化需要第一片的md5值(或者直接计算整体的md5)用来判断断点续传,以及秒传 + */ + md5Digest?: string; + + /** + * 最大返回的分片数(默认为1000,最大值1000) + * 最多分片一万,一次性返回会造成前端性能问题,需要前端多次校验 + */ + maxParts?: number; + + /** + * 分片编号的标记,用于分页查询(默认为0,表示从第一个分片开始查询) + */ + partNumberMarker?: number; + + partUploadList?: PartUploadList[]; +} + +export interface PartUploadList { + + /** + * 分片编号(从1开始递增) + */ + partNumber: number; + + /** + * 从上传部分的内容生成的实体标签 + */ + entryTag: string; +} + +export interface Data { + filename: string; + originalName: string; + md5Digest: string; + uploadId: string; + suffix: string; +} + +export function multipartUpload(multipartBo: MultipartBo) { + return httpInstance.post('/resource/oss/multipart', multipartBo); +} -- Gitee From bb90b0e68be4614931aaf8a493af31f3cf28b21a Mon Sep 17 00:00:00 2001 From: AprilWind <2100166581@qq.com> Date: Mon, 2 Dec 2024 18:25:09 +0800 Subject: [PATCH 2/2] =?UTF-8?q?update=20=E4=BD=BF=E7=94=A8element-plus?= =?UTF-8?q?=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/PartUpload/index.vue | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/src/components/PartUpload/index.vue b/src/components/PartUpload/index.vue index d1bd99b7..b86a24c4 100644 --- a/src/components/PartUpload/index.vue +++ b/src/components/PartUpload/index.vue @@ -1,15 +1,16 @@ - + + -- Gitee