修复filesystem模式取消下载不删除文件
This commit is contained in:
@@ -304,6 +304,21 @@ export async function DELETE(request: NextRequest) {
|
||||
|
||||
const downloader = getDownloader();
|
||||
|
||||
// 如果任务正在下载,先标记为取消状态,等待下载停止
|
||||
const downloadPromise = activeDownloads.get(taskId);
|
||||
if (downloadPromise) {
|
||||
// 将任务状态设置为 error,这样下载器会停止下载
|
||||
task.status = 'error';
|
||||
task.errorMessage = '任务已被删除';
|
||||
tasks.set(taskId, task);
|
||||
|
||||
// 从活跃下载列表中移除
|
||||
activeDownloads.delete(taskId);
|
||||
|
||||
// 等待一小段时间,让下载操作有机会停止
|
||||
await new Promise(resolve => setTimeout(resolve, 500));
|
||||
}
|
||||
|
||||
// 删除文件
|
||||
await downloader.deleteTask(task);
|
||||
|
||||
@@ -311,12 +326,6 @@ export async function DELETE(request: NextRequest) {
|
||||
tasks.delete(taskId);
|
||||
saveTasks(); // 持久化任务
|
||||
|
||||
// 如果正在下载,等待下载完成后再删除
|
||||
const downloadPromise = activeDownloads.get(taskId);
|
||||
if (downloadPromise) {
|
||||
activeDownloads.delete(taskId);
|
||||
}
|
||||
|
||||
return NextResponse.json({ message: '任务已删除' });
|
||||
} catch (error) {
|
||||
console.error('删除任务失败:', error);
|
||||
|
||||
Reference in New Issue
Block a user