quarkpan 0.4.0

Command-line client for Quark Drive based on libquarkpan
quarkpan-0.4.0 is not a library.

quarkpan

quarkpan 是基于 libquarkpan 的夸克网盘命令行工具。

它面向直接使用终端的场景,负责把底层库能力包装成可恢复、可观察、可取消的命令行体验。

功能概览

当前命令行支持:

  • auth 管理持久化 Cookie
  • list 列出目录内容
  • folder create 创建目录
  • delete 删除一个或多个文件或目录项
  • rename 重命名文件或目录项
  • download 下载文件
  • download-dir 下载整个目录
  • upload 上传文件
  • upload-dir 上传整个目录

同时支持:

  • 仅在交互式 TTY 中显示进度条
  • --color auto|always|never
  • Ctrl+C 取消
  • 中断后保留 .quark.task 任务文件
  • 下载中断后的显式重试与续传
  • 上传分片失败后的显式重试
  • 下次通过 -c, --continue 恢复传输

TLS Features

quarkpan 会把底层 libquarkpan 的 TLS backend feature 透传出来,命名与 reqwest 0.13 对齐,默认使用 default-tls

示例:

cargo install quarkpan
cargo install quarkpan --no-default-features --features native-tls

安装

使用 Cargo

cargo install quarkpan

从源码运行

cargo run --bin quarkpan -- --help

Cookie 提供方式

CLI 需要夸克登录后的 Cookie,支持三种方式:

  • --cookie 'k1=v1; k2=v2'
  • --cookie-file ./cookie.txt
  • 环境变量 QUARK_COOKIE
  • auth set-cookie 持久化到系统配置目录

Cookie 内容应为完整的 key=value; key2=value2 格式。 auth set-cookie 需要显式指定来源:

  • --cookie
  • --from-stdin
  • --from-nano
  • --from-vi

使用示例

列出根目录

quarkpan --cookie 'k1=v1; k2=v2' list

持久化 Cookie

quarkpan auth set-cookie --from-stdin
quarkpan auth show-source

也可以显式传入:

quarkpan auth set-cookie --cookie 'k1=v1; k2=v2'

也支持通过标准输入:

printf 'k1=v1; k2=v2\n' | quarkpan auth set-cookie --from-stdin

如果直接在终端运行:

quarkpan auth set-cookie --from-stdin

CLI 会先提示:

paste cookie, then press Enter:

也支持通过编辑器:

quarkpan auth set-cookie --from-nano
quarkpan auth set-cookie --from-vi

逐页查看更多

quarkpan --cookie 'k1=v1; k2=v2' list --pdir-fid 0 --more

创建目录

quarkpan --cookie 'k1=v1; k2=v2' folder create --pdir-fid 0 --file-name 我的文档

重命名文件或目录项

quarkpan --cookie 'k1=v1; k2=v2' rename --fid <fid> --file-name 新名字

删除一个或多个文件或目录项

quarkpan --cookie 'k1=v1; k2=v2' delete --fid <fid1> --fid <fid2>

下载文件

quarkpan --cookie 'k1=v1; k2=v2' download --fid <fid> --output ./file.bin

恢复下载

quarkpan --cookie 'k1=v1; k2=v2' download --fid <fid> --output ./file.bin -c

下载目录

quarkpan download-dir --pdir-fid <pdir_fid> --output ./backup

恢复或合并目录下载

quarkpan download-dir --pdir-fid <pdir_fid> --output ./backup -c
quarkpan download-dir --pdir-fid <pdir_fid> --output ./backup -c -o

上传文件

quarkpan --cookie 'k1=v1; k2=v2' upload --file ./file.bin --pdir-fid 0

恢复上传

quarkpan --cookie 'k1=v1; k2=v2' upload --file ./file.bin --pdir-fid 0 -c

上传目录

quarkpan upload-dir --dir ./photos --pdir-fid 0

恢复或合并目录上传

quarkpan upload-dir --dir ./photos --pdir-fid 0 -c
quarkpan upload-dir --dir ./photos --pdir-fid 0 -c -o

任务文件说明

下载和上传在中断、报错或收到 Ctrl+C 后,会保留:

${filename}.quark.task

目录任务使用与目录同级同名的任务文件,例如:

photos.quark.task

用途:

  • 下载时记录远端文件身份信息和目标输出路径
  • 上传时记录预检得到的上传会话信息和已完成的分片状态

成功完成后,任务文件会自动删除。

Ctrl+C 时:

  • 当前传输会尽快停止
  • 已生成的任务文件会保留
  • 不会把取消误当作普通失败继续重试
  • 后续可使用 -c 恢复

进度条显示规则:

  • 只在交互式终端显示
  • 定时任务、管道和重定向默认不显示
  • 下载和上传都会显示当前文件名

当前限制

  • 目录和文件操作当前以 ID 为主
  • 下载当前只支持按文件 ID
  • CLI 当前不负责复杂的路径递归解析
  • 上传恢复依赖本地文件内容未变化,因此继续上传前会重新校验 size/md5/sha1
  • 云端覆盖当前通过删除旧文件后再上传实现
  • CLI 已移除 --json 输出模式

License

GPL-3.0-only