fix: 上传成功后清除文件状态,防止重复使用旧文件
- select_profile: 选择配置时清除 file_key,确保必须重新发送文件 - confirm_upload: 上传成功后 clearUserState() 完整清除状态 - handleFileReceived: 收到新文件时清除旧配置,避免配置污染 修复问题:之前上传成功后 userStates 中的 file_key 未清除, 导致再次点击配置可能误用之前的文件,造成混乱。
This commit is contained in:
18
src/index.js
18
src/index.js
@@ -153,11 +153,16 @@ async function handleCardInteraction(event) {
|
|||||||
const { profile_name, bucket, path_key } = actionData.value;
|
const { profile_name, bucket, path_key } = actionData.value;
|
||||||
log('📋 选择上传配置:', profile_name);
|
log('📋 选择上传配置:', profile_name);
|
||||||
|
|
||||||
// path_key 是预设路径的名称,需要从配置中获取实际路径
|
// 清除之前的文件信息,确保必须重新上传文件
|
||||||
|
const state = getUserState(chatId);
|
||||||
setUserState(chatId, {
|
setUserState(chatId, {
|
||||||
profile_name,
|
profile_name,
|
||||||
bucket,
|
bucket,
|
||||||
path_key
|
path_key,
|
||||||
|
// 清除文件信息
|
||||||
|
file_key: undefined,
|
||||||
|
file_name: undefined,
|
||||||
|
message_id: undefined
|
||||||
});
|
});
|
||||||
|
|
||||||
await feishu.sendMessage(chatId, {
|
await feishu.sendMessage(chatId, {
|
||||||
@@ -209,6 +214,7 @@ async function handleCardInteraction(event) {
|
|||||||
await doUpload(chatId, feishu, uploader, {
|
await doUpload(chatId, feishu, uploader, {
|
||||||
file_key, file_name, message_id, bucket, upload_path, path_label, path_key
|
file_key, file_name, message_id, bucket, upload_path, path_label, path_key
|
||||||
});
|
});
|
||||||
|
// 上传成功后清除所有状态(包括文件信息)
|
||||||
clearUserState(chatId);
|
clearUserState(chatId);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -320,11 +326,15 @@ async function handleFileReceived(messageData, feishu, uploader) {
|
|||||||
|
|
||||||
if (!fileKey) return;
|
if (!fileKey) return;
|
||||||
|
|
||||||
// 保存文件信息到状态
|
// 清除之前的配置,保存新文件信息(覆盖旧文件)
|
||||||
setUserState(chatId, {
|
setUserState(chatId, {
|
||||||
file_key: fileKey,
|
file_key: fileKey,
|
||||||
file_name: fileName,
|
file_name: fileName,
|
||||||
message_id: messageId
|
message_id: messageId,
|
||||||
|
// 清除之前的配置选择
|
||||||
|
profile_name: undefined,
|
||||||
|
bucket: undefined,
|
||||||
|
path_key: undefined
|
||||||
});
|
});
|
||||||
|
|
||||||
const state = getUserState(chatId);
|
const state = getUserState(chatId);
|
||||||
|
|||||||
Reference in New Issue
Block a user