夸克网盘文件管理 CLI 工具。
本项目采用 AGPL-3.0 许可证,完全开源。欢迎贡献代码、报告问题或提出建议。
重要提示:本项目禁止商业使用。任何商业使用(包括但不限于 SaaS 服务、商业产品集成等)必须获得明确授权。
- 源代码:所有源代码已公开,可在 GitHub 仓库中查看和下载
- 构建:使用
build.sh脚本可以自行编译各平台的二进制文件 - 贡献:欢迎提交 Pull Request 或 Issue
- 文档:项目文档和代码注释持续完善中
- 用户信息: 获取用户信息
- 文件列表: 列出夸克网盘指定目录下的所有文件和子目录
- 文件信息: 获取文件或目录的详细信息(大小、修改时间、路径等)
- 下载链接: 获取文件的下载链接
- 文件上传: 将本地文件上传到夸克网盘(支持大文件分片上传)
- 文件夹操作: 创建文件夹
- 文件操作: 移动、复制、重命名文件或目录
- 文件删除: 删除夸克网盘中的文件或目录
- 分享功能: 创建分享链接,支持设置有效期和提取码;取消分享,支持通过 share_id 或文件路径取消分享
- CLI 工具: 提供命令行工具,方便其他进程调用
- Linux / macOS / Windows 操作系统
- 有效的夸克网盘账号和 Cookie
需要 Go 1.18+ 和 Git。
git clone https://github.com/zhangjingwei/kuake_sdk.git
cd kuake_sdk
chmod +x build.sh
./build.sh构建完成后,二进制文件在 dist/ 目录中。
从 Releases 页面下载对应平台的二进制文件。
Linux/macOS:
wget https://github.com/zhangjingwei/kuake_sdk/releases/latest/download/kuake-v1.3.3-linux-amd64
chmod +x kuake-v1.3.3-linux-amd64
./kuake-v1.3.3-linux-amd64 userWindows:
Invoke-WebRequest -Uri "https://github.com/zhangjingwei/kuake_sdk/releases/latest/download/kuake-v1.3.3-windows-amd64.exe" -OutFile "kuake-v1.3.3-windows-amd64.exe"
.\kuake-v1.3.3-windows-amd64.exe user创建 config.json 文件:
{
"Quark": {
"access_tokens": [
"__pus=your_pus_value_here;"
]
}
}如何获取 Cookie:登录夸克网盘,打开开发者工具(F12),在 Network 标签页中复制任意请求的 Cookie 值,粘贴到 access_tokens 数组中。
./kuake-v1.3.3-linux-amd64 user
./kuake-v1.3.3-linux-amd64 upload "file.txt" "/file.txt"
./kuake-v1.3.3-linux-amd64 list "/"{
"Quark": {
"access_tokens": [
"__pus=your_pus_value_here;"
]
}
}重要说明:
access_tokens字段是一个字符串数组,支持配置多个用户的 Cookie- 每个字符串存储的是完整的 Cookie 字符串(所有 cookie 用分号和空格分隔)
- 从浏览器开发者工具中复制完整的 Cookie 值
- 示例格式:
cookie1=value1; cookie2=value2; cookie3=value3 - 支持多用户配置(在数组中添加多个 Cookie 字符串)
安全提示:
config.json文件包含敏感信息,请不要将其提交到版本控制系统.gitignore文件已包含config.json,确保不会被意外提交- 请妥善保管您的 Cookie,不要分享给他人
kuake <command> [config.json] [arguments...]| 命令 | 说明 | 示例 |
|---|---|---|
user |
获取用户信息 | kuake user |
list [path] |
列出目录内容(默认: "/") | kuake list "/" |
info <path> |
获取文件/文件夹信息 | kuake info "/file.txt" |
download <path> |
获取文件下载链接 | kuake download "/file.txt" |
upload <file> <dest> |
上传文件(上传进度输出到 stderr) | kuake upload "file.txt" "/file.txt" |
create <name> <pdir> |
创建文件夹(pdir 为父目录路径,根目录使用 "/") | kuake create "test_folder" "/" |
move <src> <dest> |
移动文件/文件夹 | kuake move "/file.txt" "/folder/" |
copy <src> <dest> |
复制文件/文件夹 | kuake copy "/file.txt" "/folder/" |
rename <path> <newName> |
重命名文件/文件夹 | kuake rename "/file.txt" "new_name.txt" |
delete <path> |
删除文件/文件夹 | kuake delete "/file.txt" |
share <path> <days> <passcode> |
创建分享链接 | kuake share "/file.txt" 7 "false" |
share-delete <share_id_or_path> [share_id_or_path2] ... |
取消分享(支持通过 share_id 或文件路径) | kuake share-delete "fdd8bfd93f21491ab80122538bec310d" 或 kuake share-delete "/file.txt" |
help |
显示帮助信息 | kuake help |
重要提示:
- 所有路径参数必须用引号包裹(
"path") - 根目录使用
"/"表示 days参数:0=永久,1=1天,7=7天,30=30天passcode参数:"true"=需要提取码,"false"=不需要提取码
所有命令的结果都以 JSON 格式输出到 stdout:
成功响应:
{
"success": true,
"code": "OK",
"message": "操作成功",
"data": {
...
}
}错误响应:
{
"success": false,
"code": "ERROR_CODE",
"message": "错误描述",
"error": "详细错误信息"
}注意:
- 所有结果(包括成功和错误)都以 JSON 格式输出到 stdout
- 上传进度、帮助信息和序列化错误输出到 stderr
- 这样设计便于其他进程解析 JSON 结果,进度信息不会混入 JSON 输出
0: 操作成功1: 操作失败
# 获取用户信息(使用默认配置文件 config.json)
./kuake-{version}-{os}-{arch} user
# 获取用户信息(使用自定义配置文件)
./kuake-{version}-{os}-{arch} user custom.json
# 列出根目录
./kuake-{version}-{os}-{arch} list "/"
# 获取文件信息
./kuake-{version}-{os}-{arch} info "/file.txt"
# 获取文件下载链接
./kuake-{version}-{os}-{arch} download "/file.txt"
# 上传文件
./kuake-{version}-{os}-{arch} upload "file.txt" "/file.txt"
# 创建文件夹(根目录)
./kuake-{version}-{os}-{arch} create "test_folder" "/"
# 移动文件
./kuake-{version}-{os}-{arch} move "/file.txt" "/folder/"
# 复制文件
./kuake-{version}-{os}-{arch} copy "/file.txt" "/folder/"
# 重命名文件
./kuake-{version}-{os}-{arch} rename "/file.txt" "new_name.txt"
# 删除文件
./kuake-{version}-{os}-{arch} delete "/file.txt"
# 创建分享链接(7天,不需要提取码)
./kuake-{version}-{os}-{arch} share "/file.txt" 7 "false"
# 创建分享链接(30天,需要提取码,使用自定义配置文件)
./kuake-{version}-{os}-{arch} share "/file.txt" 30 "true" custom.json
# 取消分享(通过 share_id)
./kuake-{version}-{os}-{arch} share-delete "fdd8bfd93f21491ab80122538bec310d"
# 取消分享(通过文件路径,会自动查找对应的 share_id)
./kuake-{version}-{os}-{arch} share-delete "/file.txt"
# 同时取消多个分享
./kuake-{version}-{os}-{arch} share-delete "share_id1" "share_id2" "/file.txt"
# 查看帮助
./kuake-{version}-{os}-{arch} help注意:
- 示例中的
{version}、{os}、{arch}需要替换为实际值 - Windows 用户需要添加
.exe扩展名并使用.\前缀 - 如果已添加到 PATH,可以直接使用
kuake命令
- 修复 Windows 路径处理问题,支持跨平台路径兼容性
- 添加路径标准化函数,统一处理 Windows/Unix 路径格式
- 修复文件操作函数中的路径处理问题
- 新增路径处理相关测试用例
- 新增取消分享功能,支持通过 share_id 或文件路径取消分享
- 新增
share-deleteCLI 命令
- 修复 CLI 错误消息转义问题
- 优化 API 错误响应处理
- 修复类型断言安全性问题
- 新增完整的单元测试套件
- 文件名格式:二进制文件名包含版本号,格式为
kuake-{version}-{os}-{arch}或kuake-{version}-{os}-{arch}.exe(Windows) - 执行权限:Linux/macOS 二进制文件已包含执行权限,可直接使用
./前缀执行 - 路径参数:所有路径参数必须用引号包裹(包含空格或特殊字符时),例如:
"./file name.txt"、"/path/to/file" - 跨平台路径支持:
- Windows 用户可以使用 Windows 风格的路径(
d:\a\b\c),会自动转换为 Unix 风格 - Linux/macOS 用户继续使用标准 Unix 路径格式(
/a/b/c) - 所有路径最终都会标准化为 Unix 风格,确保跨平台一致性
- Windows 用户可以使用 Windows 风格的路径(
- 配置文件:
- 默认配置文件路径:
config.json(当前目录) - 配置文件参数是可选的,放在命令之后、其他参数之前
- 配置文件参数必须是
.json扩展名 - 示例:
kuake user custom.json(使用自定义配置文件)
- 默认配置文件路径:
- 操作说明:
- 所有操作都通过夸克网盘 API 进行
- 需要有效的 Cookie(access_token)才能使用
- 上传操作支持进度显示(输出到 stderr)
- 删除目录会递归删除所有子文件和子目录
- 输出格式:
- CLI 工具的所有结果以 JSON 格式输出到 stdout,方便其他进程解析
- 上传进度、帮助信息和序列化错误输出到 stderr,不会混入 JSON 输出
- 成功时退出码为 0,失败时为 1
重要提示:请在使用本工具前仔细阅读并完全理解本免责声明。使用本工具即表示您已阅读、理解并完全同意本免责声明的所有条款。
1.1 本项目("Kuake SDK")是一个非官方的第三方开源工具,与夸克网盘("Quark")及其关联公司(统称"夸克官方")完全无关,未获得夸克官方的任何授权、认可或支持。
1.2 本项目不隶属于、不代表、不代表夸克官方,也不代表夸克官方的任何立场或政策。
1.3 本项目仅用于学习和研究目的,不应用于任何商业用途(除非获得明确授权)。
2.1 用户自行承担所有风险:使用本工具进行任何操作时,用户完全自行承担所有风险和责任,包括但不限于:
- 数据丢失、损坏、泄露或无法恢复
- 账号被封禁、限制、暂停或永久禁用
- API 调用失败、超时或返回错误结果
- 违反夸克官方服务条款导致的任何后果
- 违反相关法律法规导致的任何后果
- 因使用本工具导致的任何直接或间接损失
- 其他任何不可预见或可预见的后果
2.2 不提供任何保证:本工具按"现状"提供,不提供任何明示或暗示的保证,包括但不限于:
- 不保证工具的功能完整性、准确性、可靠性或可用性
- 不保证工具与夸克官方 API 的兼容性
- 不保证工具的安全性、无错误性或无病毒性
- 不保证工具满足用户的特定需求或期望
- 不保证工具的持续可用性或维护
3.1 API 变更风险:夸克官方可能随时更改、限制或终止其 API,这可能导致本工具完全无法使用。项目维护者不保证工具的持续可用性,不承担因 API 变更导致的任何责任。
3.2 遵守服务条款:使用本工具即表示您已阅读、理解并同意遵守夸克官方的所有服务条款、使用协议、隐私政策等相关规定。
3.3 禁止滥用:用户不得使用本工具进行以下行为:
- 违反夸克官方服务条款的任何行为
- 滥用 API、批量操作、爬虫或自动化脚本(除非明确允许)
- 侵犯他人知识产权、隐私权或其他合法权益
- 传播恶意软件、病毒或有害代码
- 进行任何非法、欺诈或不当行为
- 干扰、破坏或攻击夸克官方的服务或系统
3.4 违规后果:任何违反服务条款的行为可能导致:
- 账号被立即封禁或限制
- 承担相应的法律责任
- 项目维护者有权拒绝提供支持或服务
4.1 Cookie 安全责任:
- 用户完全自行负责 Cookie 的安全保管和使用
- 禁止将 Cookie 分享给任何第三方
- 禁止在公共场合、不可信环境或不安全设备上使用本工具
- 建议定期更换 Cookie 以确保账号安全
- 因 Cookie 泄露导致的任何损失,项目维护者不承担任何责任
4.2 数据隐私:
- 本工具不会收集、存储或传输用户的任何个人数据或文件内容
- 所有操作均在用户本地环境执行
- 用户自行负责其数据的安全和隐私保护
4.3 第三方服务:本工具依赖夸克官方的 API 服务,用户的数据和操作受夸克官方的隐私政策和服务条款约束。
5.1 项目知识产权:本项目的源代码、文档、设计等知识产权归项目维护者所有,受 AGPL-3.0 许可证保护。
5.2 第三方知识产权:本工具可能使用或引用第三方库、API 或服务,其知识产权归各自所有者所有。
5.3 用户内容:用户通过本工具上传、存储或管理的任何内容,其知识产权归用户或相关权利人所有,项目维护者不主张任何权利。
6.1 完全免责:在法律允许的最大范围内,项目维护者及其贡献者不对以下事项承担任何责任:
- 使用本工具造成的任何直接、间接、偶然、特殊、惩罚性或后果性损失
- 数据丢失、业务中断、利润损失、商誉损失或其他经济损失
- 因使用本工具导致的任何法律纠纷、诉讼或索赔
- 因 API 变更、服务中断或工具失效导致的任何损失
- 因违反服务条款、法律法规导致的任何后果
- 因安全漏洞、恶意攻击或技术故障导致的任何损失
6.2 责任限制:即使项目维护者已被告知可能发生此类损失,也不承担任何责任。
6.3 适用法律:本免责声明受中华人民共和国法律管辖。如发生争议,应通过友好协商解决;协商不成的,提交项目维护者所在地有管辖权的人民法院解决。
7.1 法律法规遵守:用户必须遵守所有适用的法律法规,包括但不限于:
- 《中华人民共和国网络安全法》
- 《中华人民共和国数据安全法》
- 《中华人民共和国个人信息保护法》
- 其他相关法律法规
7.2 禁止用途:用户不得将本工具用于任何非法、有害、欺诈或不当目的。
7.3 出口管制:用户必须遵守所有适用的出口管制法律法规,不得将本工具用于受限制的目的或地区。
8.1 不提供技术支持:项目维护者不提供任何形式的技术支持、维护或更新保证。
8.2 项目状态:项目可能随时暂停、终止或变更,项目维护者不承担任何通知义务。
8.3 社区支持:用户可以通过 GitHub Issues 等渠道寻求社区帮助,但不保证获得回复或解决方案。
9.1 使用建议:
- 强烈建议在生产环境使用前进行充分测试
- 强烈建议定期备份重要数据
- 强烈建议遵守夸克官方的使用规范和服务条款
- 建议在非关键场景下使用本工具
- 建议定期检查工具更新和安全公告
9.2 风险控制:
- 使用前请评估风险并采取适当的安全措施
- 建议使用测试账号进行验证
- 建议限制使用频率和操作范围
10.1 项目维护者保留随时修改本免责声明的权利,修改后的免责声明将在项目仓库中发布。
10.2 继续使用本工具即表示您接受修改后的免责声明。
最终声明:
使用本工具即表示您已充分理解并完全同意上述所有条款。如果您不同意本免责声明的任何内容,请立即停止使用本工具。项目维护者不对因使用本工具导致的任何损失、损害或法律后果承担任何责任。
本项目采用 AGPL-3.0 许可证。详情请参阅 LICENSE 文件。
许可证要点:
- 允许:学习、研究、修改、分发
- 允许:个人和非商业使用
- 禁止:商业使用(包括 SaaS 服务、商业产品集成等)
- 要求:使用本项目的衍生作品也必须采用 AGPL-3.0 许可证并开源
商业使用授权:如需商业使用,请联系项目维护者获得授权。