Install
openclaw skills install @thcjp/alistopenclaw skills install @thcjp/alist基于alist(45k+星)的统一网盘管理服务,支持百度网盘/阿里云盘/夸克网盘/115网盘等30+种存储后端。通过alist REST API v3实现文件上传、下载、分享、删除等操作。内置Token自动刷新(48小时有效期,过期前5分钟自动续期)、熔断器保护(3次重试+指数退避)和发货安全机制(自动密码+有效期+客户跟踪+重发限制)。替代原baidu-pan-mcp和quark-promote-mcp。
{
"local_path": "d:/output/product_image.png",
"remote_dir": "/JueJin/products/",
"drive": ""
}
{
"file_path": "/JueJin/products/tutorial.zip",
"drive": "",
"period_days": 3
}
{
"buyer_id": "buyer_123",
"product_name": "OpenClaw部署教程"
}
{
"success": true,
"data": {
"share_url": "http://localhost:5244/s/abc123",
"password": "a3b7",
"file_path": "/JueJin/products/tutorial.zip",
"drive": "",
"period_days": 3
},
"error": null,
"code": null
}
{
"success": true,
"data": {
"share_url": "http://localhost:5244/s/abc123",
"password": "k9m2",
"file_path": "/JueJin/products/tutorial.zip",
"period_days": 3,
"expires_at": 1747358400.0
},
"error": null,
"code": null
}
| 工具 | 参数 | 说明 |
|---|---|---|
| list_files | path, drive | 列出网盘目录文件 |
| upload_file | local_path, remote_dir, drive | 上传文件到网盘 |
| create_share_link | file_path, drive, period, password | 生成分享链接 |
| create_secure_share | file_path, drive, period_days | 生成安全分享链接(自动密码+跟踪) |
| delete_file | file_path, drive | 删除网盘文件 |
| get_file_info | file_path, drive | 获取文件详细信息 |
| download_url | file_path, drive | 获取文件下载链接 |
| list_drives | 无 | 列出所有存储后端 |
| healthcheck | 无 | 检查服务健康状态 |
| redelivery_status | buyer_id, product_name | 查询发货跟踪记录 |
| delivery_stats | 无 | 获取发货统计信息 |
| check_expiring_links | 无 | 检查即将过期的链接 |
| 项目 | 值 | 说明 |
|---|---|---|
| Token有效期 | 48小时 | 与alist服务端config.json一致 |
| 自动刷新 | 过期前5分钟 | token_manager自动续期 |
| 刷新失败 | CRITICAL告警 | alert_manager推送告警 |
| 401处理 | 清空Token重登录 | 自动重试1次 |
| 错误代码 | 场景 | 处理方式 |
|---|---|---|
| LIST_ERROR | 文件列表获取失败 | 返回错误信息 |
| UPLOAD_ERROR | 文件上传失败 | 检查文件路径和网络,重试3次 |
| SHARE_ERROR | 分享链接生成失败 | 检查文件路径和权限 |
| DELETE_ERROR | 文件删除失败 | 检查文件路径和权限 |
| INFO_ERROR | 文件信息获取失败 | 检查文件路径 |
| DOWNLOAD_ERROR | 下载链接获取失败 | 检查文件路径和权限 |
| DRIVE_ERROR | 存储后端列表获取失败 | 检查alist服务状态 |
| FILE_NOT_FOUND | 本地文件不存在 | 确认local_path路径正确 |
| RECORD_NOT_FOUND | 发货记录不存在 | 确认buyer_id和product_name |
| REDELIVERY_ERROR | 重发状态查询失败 | 检查delivery_tracker |
| EXPIRY_CHECK_ERROR | 过期检查失败 | 检查delivery_tracker |
| MAX_RETRIES_EXCEEDED | 重试3次均失败 | 检查alist服务+网络+Token |
| HEALTH_ERROR | 健康检查失败 | 检查alist服务是否运行 |
输入:
{"local_path": "d:/output/tutorial.zip", "remote_dir": "/JueJin/products/", "drive": ""}
执行:
输出:
{
"success": true,
"data": {
"share_url": "http://localhost:5244/s/abc123",
"password": "k9m2",
"file_path": "/JueJin/products/tutorial.zip",
"period_days": 3,
"expires_at": 1747358400.0
}
}
输入:
{"buyer_id": "buyer_123", "product_name": "OpenClaw部署教程"}
执行:
输出:
{
"success": true,
"data": {
"buyer_id": "buyer_123",
"product_name": "OpenClaw部署教程",
"share_url": "http://localhost:5244/s/abc123",
"is_expired": false,
"remaining_hours": 48.5,
"delivery_count": 1,
"can_redeliver": true,
"remaining_redeliveries": 2,
"status": "active"
}
}