Skip to content

Conversation

@varg1714
Copy link
Contributor

@varg1714 varg1714 commented Oct 31, 2025

Description / 描述

基于网盘的接口实现批量复制、移动、删除、重命名的能力。

Motivation and Context / 背景

当前的移动以及复制等操作是逐个进行的,大批量数据操作时耗时长且可能触发风控。针对支持批量移动和复制的网盘提供批量操作的接口来一次性完成移动/复制。

备注:

性能优化:

原本的移动和复制操作会检查原文件是否存在,因此实际上会调用多次Get操作。当目标驱动未实现Get操作时会降级为List操作。在此情况,当目标文件夹为空时,会导致缓存无法生效,从而导致List操作也会被多次调用。

当操作文件数量大时,相当于检查阶段就会产生大量的接口请求。因此即使目标驱动不支持批量大移动或者复制操作,那么这个改动也能显著的提升上述情况的性能。

How Has This Been Tested? / 测试

本地测试,支持的网盘直接使用批量操作的接口,避免多次调用。

Checklist / 检查清单

  • I have read the CONTRIBUTING document.
    我已阅读 CONTRIBUTING 文档。
  • I have formatted my code with go fmt or prettier.
    我已使用 go fmtprettier 格式化提交的代码。
  • I have added appropriate labels to this PR (or mentioned needed labels in the description if lacking permissions).
    我已为此 PR 添加了适当的标签(如无权限或需要的标签不存在,请在描述中说明,管理员将后续处理)。
  • I have requested review from relevant code authors using the "Request review" feature when applicable.
    我已在适当情况下使用"Request review"功能请求相关代码作者进行审查。
  • I have updated the repository accordingly (If it’s needed).
    我已相应更新了相关仓库(若适用)。

@varg1714
Copy link
Contributor Author

请问这个PR还有问题吗?刚才使用的时候发现即使有批量移动的驱动,操作还是很慢,调试了一下发现了一个性能问题,也一起给优化了。

ILoveScratch2
ILoveScratch2 previously approved these changes Nov 12, 2025
@ILoveScratch2 ILoveScratch2 changed the title feat(fs): Batch move and copy. feat(fs): batch move and copy. Nov 12, 2025
@varg1714 varg1714 changed the title feat(fs): batch move and copy. feat(fs): batch operations (delete, copy, move, rename) support Nov 13, 2025
@varg1714
Copy link
Contributor Author

部分驱动新增了删除以及重命名的支持。这部分操作本来想在 #1110 上继续改的,看了一下一些驱动的接口,所需要的信息不只是名称和ID,因此还是基于传递原始对象的形式方便各驱动获取对应信息。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants