文叔叔文件上传 Skill
一、方案选择
| 方案 | 命令 | 当前环境 | 适用场景 |
|---|---|---|---|
| A: wssf CLI | wssf u <文件> -r |
✅ 可用 | 首选,简洁高效 |
| B: Python 脚本 | python3 wenshushu_upload.py upload <文件> |
✅ 可用 | 需定制/无 wssf |
| C: Browser 自动化 | python3 wenshushu_browser.py upload <文件> |
✅ 可用 | API 被反爬时兜底 |
> 推荐:优先方案A,失败降级到方案B,再失败走方案C。
输出规范
上传完成后必须在回复中展示以下信息:
| 字段 | 格式示例 | 说明 |
|---|---|---|
| 公共链接 | https://c.wss.ink/f/xxxxx |
下载地址,必须输出 |
| 取件码 | 8888 |
4位数字,有则必须输出,无则注明"无需取件码" |
| 管理链接 | https://www.wenshushu.cn/t/xxxxx |
可选输出 |
二、方案A:wssf CLI(推荐)
# 安装
pip install wssf==6.0.0
# 上传
wssf u /path/to/file.tar.gz # 基本上传
wssf u /path/to/file.tar.gz -r # 随机取件码
wssf u /path/to/file.tar.gz -k 8888 # 指定取件码
wssf u /path/to/file.tar.gz -l # 登录上传(40GB vs 匿名5GB)
wssf u ./my_folder/ # 目录自动压缩上传
# 登录(可选)
wssf login "TOKEN" # TOKEN 从浏览器 F12 → X-TOKEN 获取
一键脚本:skill 目录下 wss_upload.sh,自动安装依赖 + 上传:
bash wss_upload.sh /path/to/file.tar.gz # 随机取件码
bash wss_upload.sh /path/to/file.tar.gz 8888 # 指定取件码
三、方案B:Python 原生脚本
skill 目录下的 wenshushu_upload.py,自实现文叔叔完整 API。
3.1 使用
pip install requests pycryptodomex base58
python3 wenshushu_upload.py upload /path/to/file -p 1234
python3 wenshushu_upload.py download --url https://c.wss.ink/f/xxxxx
3.2 API 流程
匿名登录 → 获取时间戳 → A-code 签名 → 创建任务 → 秒传检测 → 分块上传 → 完成 → 获取链接
3.3 A-code 签名(反爬核心)
def get_cipherheader(epochtime, token, data):
json_dumps = json.dumps(data, ensure_ascii=False)
md5_hash = hashlib.md5((json_dumps + token).encode()).hexdigest()
base58_hash = base58.b58encode(md5_hash) # bytes!
key_iv = ("".join([epochtime[int(i)] for i in epochtime[::-1][:5]]) + "000").encode()
cipher = DES.new(key_iv, DES.MODE_CBC, key_iv)
return base64.b64encode(cipher.encrypt(Padding.pad(base58_hash, DES.block_size, style="pkcs7")))
关键:b58encode 返回 bytes | epochtime 有效期 60s | 请求头必须含 Prod + Req-Time + A-code
四、方案C:Browser 自动化(兜底)
skill 目录下的 wenshushu_browser.py,基于 Playwright 无头浏览器自动化。
# 依赖
pip install playwright && playwright install chromium
# 上传
python3 wenshushu_browser.py upload /path/to/file
python3 wenshushu_browser.py upload /path/to/file --headful # 有头模式调试
流程:打开文叔叔 → 选择文件 → 勾选协议 → 点击发送 → 等待完成 → 提取链接。
五、游客模式限制
- 单文件 ≤ 5GB | 默认 1 天过期 | 无法设提取码/删除
- API 频率限制:code=1021 时按 message 秒数 sleep 重试
六、故障排查
| 症状 | 原因 | 处理 |
|---|---|---|
| 滑块验证 | 频率触发反爬 | 切方案C |
SSL: CERTIFICATE_VERIFY_FAILED |
系统时间不准 | 校准时间 |
413 / 上传中断 |
文件超 5GB | 登录上传或拆包 |
wssf: command not found |
未装或 PATH 缺失 | pip install wssf 后加 ~/.local/bin 到 PATH |
| code=1021 | 请求过快 | sleep 后重试 |