diff --git a/src/index.js b/src/index.js index 8619f9c..0c02149 100644 --- a/src/index.js +++ b/src/index.js @@ -153,11 +153,16 @@ async function handleCardInteraction(event) { const { profile_name, bucket, path_key } = actionData.value; log('📋 选择上传配置:', profile_name); - // path_key 是预设路径的名称,需要从配置中获取实际路径 + // 清除之前的文件信息,确保必须重新上传文件 + const state = getUserState(chatId); setUserState(chatId, { profile_name, bucket, - path_key + path_key, + // 清除文件信息 + file_key: undefined, + file_name: undefined, + message_id: undefined }); await feishu.sendMessage(chatId, { @@ -209,6 +214,7 @@ async function handleCardInteraction(event) { await doUpload(chatId, feishu, uploader, { file_key, file_name, message_id, bucket, upload_path, path_label, path_key }); + // 上传成功后清除所有状态(包括文件信息) clearUserState(chatId); break; } @@ -320,11 +326,15 @@ async function handleFileReceived(messageData, feishu, uploader) { if (!fileKey) return; - // 保存文件信息到状态 + // 清除之前的配置,保存新文件信息(覆盖旧文件) setUserState(chatId, { file_key: fileKey, file_name: fileName, - message_id: messageId + message_id: messageId, + // 清除之前的配置选择 + profile_name: undefined, + bucket: undefined, + path_key: undefined }); const state = getUserState(chatId);