filehub-transfer
让 coding agent 自己把文件传到烛龙智元 · 文件中转站(files.dragonai.tech)。封装登录 / 单传 / 分片 / 秒传 / 下载 / 列举 / 删除,零依赖(仅 Python 标准库)。
给 Claude Code 等 agent 安装
一行解压到项目或用户级 skills 目录,再设置访问口令即可:
curl -fsSL https://files.dragonai.tech/skill/filehub-transfer.tar.gz | tar -xz -C ~/.claude/skills/
export FILEHUB_PASSWORD='<访问口令>'
装好后,SKILL.md 的描述会让 agent 在「需要存取中转站文件」时自动调用。
不装技能,直接用 CLI
curl -fsSL https://files.dragonai.tech/skill/filehub.py -o filehub.py
# 第一步:连接自检(确认服务器可达、口令是否就绪、进入了哪个空间)
python filehub.py status --password '<访问口令>'
# 口令可走 --password,或一次性导出到环境变量
export FILEHUB_PASSWORD='<访问口令>'
python filehub.py upload ./build.zip --folder "构建产物/" # 成功后 stdout 打印对象 key
python filehub.py download "构建产物/build.zip" ./build.zip
python filehub.py ls "构建产物/" --json # --json:结构化输出便于解析
python filehub.py rm "构建产物/旧.zip"
# 断点续传:上传中断(退出码 4)后,重跑同一条 upload 即自动续传
python filehub.py upload-status ./big.zip # 查续传进度
python filehub.py uploads # 列出所有未完成的分片上传
python filehub.py abort "big.zip" # 放弃一个未完成的上传
断点续传 · 中断恢复
大文件(> 100MB)自动 8MB 分片,CLI 把分片会话(uploadId 等)落到本地 ~/.filehub/uploads/。上传被打断时退出码为 4 并打印可续传摘要;agent 重跑同一条 upload 命令即可——它会向服务端核对已到分片、只补传缺失部分再合并。进度走 stderr(--json 时为 JSONL 事件流,含 part/retry/resume 等 event),最终结果走 stdout。已实测:中断在 2/5 片 → 重跑续传 → md5 往返一致。
口令即空间 · agent 鉴权握手
本平台没有固定登录:口令对应一个独立的私有空间,同口令可重复访问;共享文件需双方用同一口令。口令须至少 8 位,同时包含数字和至少 2 个字母,且不含 4 位及以上连续数字/字母或连续相同字符(如 1234/abcd 含倒序、1111/aaaa;对所有登录统一强制,不合规一律返回 400 weak_password;老用户原口令无法登录时请联系管理员获取新口令)。这让 agent 的接入流程非常简单——
- 先跑
python filehub.py status探测; - 若退出码为 3(并打印
AUTH_REQUIRED/ JSON"code":"auth_required"),说明缺口令,agent 应停下来向用户索取访问口令(不要自己编); - 拿到后用
--password '<口令>'重试,status会回显空间指纹与是否为空,确认进对了空间即可继续上传下载。
退出码契约:0 成功 · 1 一般错误(看 stderr / hint)· 3 需要口令(向用户索取后带 --password 重试)。后端对应的 HTTP 401 也带结构化 code / hint / auth 字段,详见 API 文档 · agent 接入约定。
包含文件
python filehub.py upload / download / ls / rm
整包 .tar.gz
解压即得 filehub-transfer/ 目录
说明
文件字节直传阿里云 OSS,不限带宽 / 大小;> 100MB 自动分片;相同内容秒传(0 字节)。
口令即空间:口令对应一个独立的私有文件空间,同口令可再次访问;要共享文件,上传方与下载方需使用同一口令。口令须至少 8 位,同时包含数字和至少 2 个字母,且不含 4 位及以上连续数字/字母或连续相同字符(对所有登录统一强制)。口令仅经环境变量
FILEHUB_PASSWORD提供,不写死在技能里。需要不经 CLI 的原始 HTTP 接口?见 完整 API 文档。
