SuperAPI AI 工具集

soia-pkm-alipan-drive-ops

办公与效率

查看项目

更新于 10-16 09:06

技能介绍

soia-pkm-alipan-drive-ops 是阿里云盘的原子操作层技能,对标 weread-skills 之于微信读书:只提供可靠的原子操作,不做业务判断。整理策略、学习计划等高阶工作交给 soia-pkm-alipan-curator。

用途 本技能覆盖阿里云盘的基础操作:安装/登录 aliyunpan、显式 driveId 双盘操作、目录浏览、移动/重命名/删除、下载上传、容量查询、全盘 JSONL 扫描。它作为 curator 的底层依赖使用。

主要能力

  • 安装与登录:通过 brew 安装 aliyunpan,使用扫码登录,并用 who、quota 验证。
  • 双盘模型:一个账号两个盘(备份盘/资源库),共享同一容量配额,可用 aliyunpan drive 列出各盘 DriveID。所有 ls/mv/rename 只作用于当前盘,跨盘移动 CLI 不支持,需在 App 里手动操作。
  • 常用命令:列目录(ls)、移动(mv,支持多源、只能同盘)、重命名(rename,必须同目录内)、建目录(mkdir)、删除(rm,进回收站 30 天可恢复)、下载(download,大文件耗时)、容量(quota,87%+ 时提醒清理)。
  • 全盘 JSONL 扫描:已脚本化为 scripts/scan_drive.py,支持参数化 DFS、线程池、重试、断点续扫、聚合剪枝、敏感目录不下钻;输出保留目录名原始连续空格,并记录 file_id、大小与 SHA-1。

使用方式 安装本技能(单个技能): npx skills add soia-team/soia-open-pkm-clip-skills -g -a '*' -s soia-pkm-alipan-drive-ops -y

配置约定: ~/.config/soia-skills/soia-pkm-alipan-drive-ops/config.yml SOIA_PKM_ALIPAN_DRIVE_OPS_CONFIG_FILE=<custom-config-path>

接入三步(新用户引导):

1. 安装(macOS,brew 官方 formula)

brew install aliyunpan # 更新: brew upgrade aliyunpan

2. 登录(扫码,需用户本人在终端操作)

python3 scripts/run_with_env.py -- aliyunpan login

3. 验证

python3 scripts/run_with_env.py -- aliyunpan who python3 scripts/run_with_env.py -- aliyunpan quota

运行 aliyunpan 时,优先使用本技能的包装器加载私有配置,再执行命令: python3 scripts/run_with_env.py -- aliyunpan who python3 scripts/run_with_env.py -- aliyunpan quota python3 scripts/run_with_env.py -- aliyunpan ls --driveId "$DRIVE_ID" "/目标目录/"

包装器只会启动 aliyunpan、aliyunpan.exe 或 basename 为两者之一的绝对路径;它会拒绝 env、shell 和其他任意命令。包装器会读取本技能私有 config.yml 的 env: 映射,并在子进程中加载 ALIYUNPAN_CONFIG_DIR。配置文件只应由包装器读取;alipan_env.py 仅供脚本作为模块加载。不要执行 cat config.yml、env、printenv 或 set -x 来排查配置。

登录失效的远程协作恢复:当云盘命令返回「尝试登录失败,请使用 login 命令进行重新登录」,即判定登录态失效。在非交互环境以 pty 启动登录并保持 stdin 可读;从 pty 输出按“到空格为止”完整抓取授权链接;明确告知链接仅 5 分钟有效;用户完成授权与扫码后,向保活 stdin 喂一个 Enter,随后用 who 验证返回 UID,并清理辅助进程。

输出解析(脚本化必读):ls 输出为表格,提取目录名的可靠 sed 命令见技能正文。循环内所有 aliyunpan 命令加 </dev/null,防止吞掉 while 循环的 stdin。批量操作后必须终态验证(重新 ls 对照),逐条回显"✓/✗"。

适用场景

  • 查看云盘内容、登录阿里云盘、下载云盘文件、处理登录过期、全盘扫描云盘。
  • 作为 curator 的底层依赖,为整理策略提供原子操作支持。
  • 全盘 JSONL 爬虫:完整图书馆流水线 = scan_drive.py(实盘→JSONL)→ alipan-curator 的 gen_catalog.py(JSONL→折叠树总览+全文检索)。

限制与安全守则

  • 不要用 aliyunpan drive <driveId> 做全局切换:该命令写全局配置,多代理/多脚本并发时会互相污染当前盘上下文。铁律是每条命令都显式带 --driveId。
  • 工具输出不可盲信:出现物理不可能的结果时,换通道交叉验证或请用户在 App 核对。
  • 删除/覆盖前先看:rm 前先 ls 确认内容;同名冲突会自动加 (1) 后缀。
  • 高危操作留人:清空目录、批量删除、跨盘手动迁移,列清单请用户确认或亲手操作。
  • 凭据:登录态属于 aliyunpan provider,默认在 ~/.config/aliyunpan/,不要搬进 skill,也不要 cat 打印 token。
  • 删除/移动/重命名前先确认:唯一跳过条件是客户当前这句话明确说"直接删/不用确认"。
  • 批量前先小样本探测:批量 mv/rm/rename 前,先用最小样本跑一遍并汇报预计总量。
  • 限流先服从再恢复:批量写操作按每次 200–300 ms 节流,批量 listing 不低于每次 300 ms;收到 429 时读取 x-retry-after 并等待,绝不连续重试。
  • 同名兄弟目录的 CLI 硬限制:ls/ll 只按路径寻址,无法按 file_id 进入其中一份;临时移出后不能用 CLI 原样还原双同名状态。
  • scan_drive.py 产出的 .errors/.progress/.done sidecar 刻意与 --out 主产出同目录、同生命周期,不要挪去临时目录。
  • 防代理卡死纪律:长内容一律脚本落文件、对话回复限 15 行。

深入实战手册:遇到安装/登录细节、--driveId 显式传参铁律、批量操作实战坑与限流纪律、同名兄弟目录的 CLI 硬限制、全盘 JSONL 爬虫、防代理卡死纪律等场景时,先读 references/ops-playbook.md,不要重新试错。