From 686aaebc2648ca225fa2300446b1492291a4448b Mon Sep 17 00:00:00 2001 From: Roe-xin Date: Thu, 19 Mar 2026 09:23:55 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=96=87=E6=A1=A3=E9=9B=86=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=A4=A7=E5=B0=8F=E5=92=8C=E4=B8=AA=E6=95=B0=E9=99=90?= =?UTF-8?q?=E5=88=B6=20-=20=E5=8D=95=E4=B8=AA=E6=96=87=E4=BB=B6=E4=B8=8D?= =?UTF-8?q?=E8=83=BD=E5=A4=A7=E4=BA=8E10MB=20-=20=E6=80=BB=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E4=B8=8D=E8=83=BD=E5=A4=A7=E4=BA=8E100MB=20-=20?= =?UTF-8?q?=E6=80=BB=E6=96=87=E4=BB=B6=E4=B8=AA=E6=95=B0=E4=B8=8D=E8=83=BD?= =?UTF-8?q?=E8=B6=85=E8=BF=871000=E4=B8=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/docsetDialog.ts | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/src/views/docsetDialog.ts b/src/views/docsetDialog.ts index 49e597f..7c33ddf 100644 --- a/src/views/docsetDialog.ts +++ b/src/views/docsetDialog.ts @@ -427,7 +427,40 @@ export function getDocsetDialogScript(): string { if (message.errors && message.errors.length > 0) { alert('部分文件添加失败:\\n' + message.errors.join('\\n')); } - docsetFiles = [...docsetFiles, ...message.files]; + + const MAX_FILE_SIZE = 10 * 1024 * 1024; + const MAX_TOTAL_SIZE = 50 * 1024 * 1024; + const MAX_FILE_COUNT = 1000; + + const vaildFiles = []; + const errors = []; + + for (const file of message.files) { + if (file.size > MAX_FILE_SIZE) { + errors.push(\`\${file.path} 超过单个文件大小限制(\${formatFileSize(MAX_FILE_SIZE)})\`); + } else { + vaildFiles.push(file); + } + } + + const newFiles = [...docsetFiles, ...vaildFiles]; + const totalSize = newFiles.reduce((sum, f) => sum + (f.size || 0), 0); + + if (newFiles.length > MAX_FILE_COUNT) { + errors.push(\`文档数量超过限制(最多1000个),当前数量(\${newFiles.length} 个)\`); + return; + } + + if (totalSize > MAX_TOTAL_SIZE) { + errors.push(\`文档集总大小超过 50MB 限制,当前大小为(\${formatFileSize(MAX_TOTAL_SIZE)})\`); + return; + } + + if(errors.length > 0) { + alert('以下文件被跳过:\\n' + errors.join('\\n')); + } + + docsetFiles = newFiles; updateDocsetDisplay(); } else if (message.command === 'documentSetSaved') { renderDocumentSets(message.documentSets);