开源夸克网盘 CLI 工具:Kuake CLI

作者:越野小张 分类:Kuake CLI

开源夸克网盘 CLI 工具:Kuake CLI

一个完全开源的夸克网盘命令行工具和 SDK,让文件管理更简单高效

📖 项目背景

在日常开发工作中,我们经常需要与云存储服务进行交互。虽然各大云盘都提供了 Web 界面和官方客户端,但在自动化脚本、CI/CD 流程或服务器环境中,命令行工具往往更加高效和便捷。

Kuake SDK 正是为了解决这一问题而生。这是一个完全开源的夸克网盘 CLI 工具与 SDK,采用 Go 语言开发,提供完整的文件管理功能,使开发者能够通过命令行或代码轻松管理夸克网盘中的文件。

✨ 核心特性

1. 完整的文件管理功能

  • 用户信息查询:获取账号基本信息
  • 文件列表:列出指定目录下的所有文件和文件夹
  • 文件信息:获取文件或目录的详细信息(大小、修改时间、路径等)
  • 文件下载:获取文件的下载链接
  • 文件上传:支持本地文件上传至夸克网盘,支持大文件分片上传
  • 文件夹操作:创建文件夹
  • 文件操作:移动、复制、重命名文件或目录
  • 文件删除:删除文件或目录(支持递归删除)
  • 分享功能:创建分享链接,支持设置有效期和提取码

2. 跨平台支持

项目使用 Go 语言开发,天然支持跨平台编译:

  • ✅ Linux (amd64)
  • ✅ macOS (amd64)
  • ✅ Windows (amd64)

3. 多用户支持

支持在配置文件中配置多个用户的 Cookie,SDK 会自动进行负载均衡和故障转移:

{
  "Quark": {
    "access_tokens": [
      "ctoken=user1_token; __pus=user1_pus;",
      "ctoken=user2_token; __pus=user2_pus;"
    ]
  }
}

4. CLI 工具设计

CLI 工具采用 JSON 输出格式,方便其他进程解析和集成:

# 获取用户信息
./kuake-v1.3.0-linux-amd64 user

# 输出格式
{
  "success": true,
  "code": "OK",
  "message": "操作成功",
  "data": {
    "user_id": "123456",
    "nickname": "用户名"
  }
}

所有结果统一输出到 stdout,进度信息和错误信息输出到 stderr,便于脚本化使用。

🏗️ 技术架构

项目结构

kuake_sdk/
├── cmd/
│   └── main.go          # CLI 入口
├── sdk/
│   ├── quark_client.go  # 核心客户端
│   ├── user.go          # 用户相关 API
│   ├── file.go          # 文件操作 API
│   ├── share.go         # 分享相关 API
│   ├── queue.go         # 上传队列管理
│   ├── task_manager.go  # 任务管理
│   ├── config.go        # 配置管理
│   ├── constants.go     # 常量定义
│   └── types.go         # 类型定义
├── build.sh             # 构建脚本
└── README.md            # 项目文档

核心技术点

1. HTTP 客户端封装

使用 Go 标准库 net/http 封装了统一的 HTTP 请求方法,支持:

  • Cookie 自动解析和管理
  • 请求超时控制(默认 30 秒)
  • 错误处理和重试机制
  • 调试模式(通过环境变量 KUake_DEBUG=1 开启)

2. 大文件分片上传

对于大文件,实现了分片上传机制:

// 支持大文件分片上传
// 1. 预上传请求,获取上传参数
// 2. 分片上传文件数据
// 3. 更新文件哈希
// 4. 完成上传

3. Token 管理和故障转移

实现了智能的 Token 管理机制:

  • 随机选择初始 Token
  • 认证检查缓存(5 分钟内有效)
  • 失败 Token 记录和自动切换
  • 多 Token 负载均衡

🚀 快速开始

安装方式

方式一:从源码构建

# 1. 克隆仓库
git clone https://github.com/zhangjingwei/kuake_sdk.git
cd kuake_sdk

# 2. 运行构建脚本
chmod +x build.sh
./build.sh

# 3. 构建完成后,二进制文件在 dist/ 目录中

方式二:下载预编译二进制

GitHub Releases 下载对应平台的二进制文件。

配置使用

  1. 创建配置文件 config.json
{
  "Quark": {
    "access_tokens": [
      "ctoken=your_ctoken_value_here; __pus=your_pus_value_here;"
    ]
  }
}
  1. 获取 Cookie

    • 打开浏览器,登录夸克网盘
    • 打开开发者工具(F12)
    • 在 Network 标签页中,复制请求头中的 Cookie
  2. 使用 CLI 工具

# 获取用户信息
./kuake-v1.3.0-linux-amd64 user

# 列出目录
./kuake-v1.3.0-linux-amd64 list "/"

# 上传文件
./kuake-v1.3.0-linux-amd64 upload "file.txt" "/file.txt"

# 创建分享链接
./kuake-v1.3.0-linux-amd64 share "/file.txt" 7 "false"

SDK 使用示例

package main

import (
    "fmt"
    "kuake_sdk/sdk"
)

func main() {
    // 创建客户端
    client := sdk.NewQuarkClient("config.json")
    
    // 获取用户信息
    userInfo, err := client.GetUserInfo()
    if err != nil {
        fmt.Printf("Error: %v\n", err)
        return
    }
    
    fmt.Printf("User: %s\n", userInfo.Data.Nickname)
    
    // 列出目录
    files, err := client.ListFiles("/")
    if err != nil {
        fmt.Printf("Error: %v\n", err)
        return
    }
    
    for _, file := range files {
        fmt.Printf("%s (%d bytes)\n", file.Name, file.Size)
    }
}

💡 使用场景

1. 自动化备份脚本

#!/bin/bash
# 每日备份脚本
DATE=$(date +%Y%m%d)
tar -czf backup-${DATE}.tar.gz /path/to/backup
./kuake-v1.3.0-linux-amd64 upload "backup-${DATE}.tar.gz" "/backups/backup-${DATE}.tar.gz"

2. CI/CD 集成

在 CI/CD 流程中,可将构建产物自动上传到夸克网盘:

# GitHub Actions 示例
- name: Upload artifacts
  run: |
    ./kuake-v1.3.0-linux-amd64 upload "dist/app.tar.gz" "/releases/app.tar.gz"

3. 服务器文件同步

在服务器环境中,可定期同步文件到夸克网盘:

# 使用 cron 定时任务
0 2 * * * /path/to/sync-script.sh

4. 批量文件管理

通过脚本批量操作文件:

# 批量上传
for file in *.txt; do
    ./kuake-v1.3.0-linux-amd64 upload "$file" "/uploads/$file"
done

🔧 技术亮点

1. 错误处理机制

项目实现了完善的错误处理:

  • 网络超时错误检测
  • DNS 解析错误检测
  • API 错误统一处理
  • JSON 解析错误处理

2. 调试支持

通过环境变量开启调试模式:

KUake_DEBUG=1 ./kuake-v1.3.0-linux-amd64 user

调试模式下会输出详细的请求和响应信息,便于排查问题。

📄 开源协议

项目采用 AGPL-3.0 许可证,这是一个 Copyleft 许可证:

  • ✅ 允许学习、研究、修改、分发
  • ✅ 允许个人和非商业使用
  • ❌ 禁止商业使用(除非获得授权)
  • 📋 要求衍生作品也必须开源

📚 相关资源

🙏 结语

Kuake SDK 是一个实用的开源项目,它不仅解决了实际问题,也为开源社区贡献了价值。如果你正在寻找一个可靠的夸克网盘命令行工具,或者希望学习 Go 语言开发,这个项目值得一试。

项目采用 AGPL-3.0 许可证,完全开源,欢迎 Star、Fork 和贡献代码!

标签: Kuake

评论

发表评论

正在加载评论...