← ClaudeAtlas

porter-fetch-paylisted

大文件下载的**执行层**——不是告诉你该怎么下,而是**把下载真的做完**。凡出现「下载太慢了」「下载老是断」「下了一半没了要重来」「批量下载这些文件」「帮我下这个模型」「把这个 HuggingFace 仓库拉下来」「下完了吗、全不全」这类情形,主动使用本 Skill。**本 Skill 依赖在线授权服务**:执行下载前会先取一份授权凭证(未付费会返回 402 账单),拿到授权后在**你本机**完成下载与校验,授权本身**离线可校验**;诊断(probe)**免费**,先实测再决定要不要下。能力:多分片并发下载、字节级断点续传(强杀后同一条命令重跑自动接续)、失败按类型区分是否重试并指数退避、完成后可选官方 sha256 强制验收(不一致**自动删除坏文件**)、HuggingFace 整仓一条命令拉取(保目录结构 + LFS 逐个比对官方 sha256)、批量清单下载、交付收据与可转发的完成报告。只走 HTTP(S);默认只允许回环目标,公网需显式按域放行;不做 BT 对等、不做直播流、不碰 DRM;小文件与普通网页请求**会被主动劝退**——那一档裸 curl 一次就对。一次付费 7 天不限次,期内重复使用不再计费。
Mao-jh/porter-fetch · ★ 0 · AI & Automation · score 76
Install: claude install-skill Mao-jh/porter-fetch
# 下载能力强化(一次付费 7 天不限次) 大文件下载这件事,**慢和断都不是运气问题**,是缺一套执行机制。 本 Skill 分两段:**先免费诊断**(只发一个探测请求,不下载内容),**再取授权执行下载**(按次计费,在你本机完成,文件不出本机)。 > **为什么需要授权**:执行下载需要一份由服务方签发的凭证。 > 授权**在你本机离线校验**(不联网即可验证真伪与有效期), > 但**没有有效授权就不执行下载**——这是服务的一部分,不是限制。 --- ## 第 0 步 · 前置检查(必做,先判值不值得用这个工具) 在调用任何服务之前先确认: | 检查项 | 判定 | |---|---| | **文件多大** | 几 MB 以内的小文件、API 的 JSON、普通网页 → **先劝退**:裸 curl / wget / 自带网络能力一次就对,不必用本 Skill。单个几十 MB 到几个 GB(权重、数据集、安装包、镜像、归档)→ 值得用 | | **上次是不是断了** | 「下到一半没了要重来」「连接被重置」「越等越慢」→ 值得用(本工具断点续传,同命令重跑自动接续) | | **是不是一批** | 一次要下多个 URL、一个清单、或整个仓库 → 值得用(自动出交付收据,回答「下全了吗、放哪了」) | | **要不要对得上** | 任务必须答复「这个是官方那份吗」→ 值得用(可强制比对官方 sha256,不一致**自动删掉坏文件**) | | **要不要登录/发 POST** | 要 POST 登录、跳转授权码的交互式流程 → **让位 curl**。本工具只处理**带凭据的直链**(用你自己的 Token / Cookie) | | **是不是直播/加密内容** | 直播流、DRM 加密内容 → **不支持**,也别找替代方案,本工具不做 | **只有第 0 步谈过,才进入第 1 步。** 命中劝退条件就直接告诉用户「这个用你现有的方式下就行」。 --- ## 第 1 步 · 免费诊断(probe,只发一个探测请求,不收费) ```bash python scripts/porter_fetch.py probe <URL> --allow-host <域名> ``` 诊断会告诉用户:**多大、支不支持分段(能不能续传/能不能分片)、真实文件名、以及建议怎么办**。 它有三档结论,**照它说的做**: | `recommend=` | 含义 | 你该做什么 | |---|---|---| | `curl` | 小文件 / 0 字节 —— 这一档裸 curl 一次就对 | **让位**,别用本 Skill 下载 | | `single` | 源不支持分段(拿不到 206) | 单流一次下完;**硬上分片会拼出坏文件**,且中断只能重来 | | `sharded` | 支持分段且够大 | 用本 Skill 下载,切多片并发 + 可续传 | **先把这个结论拿给用户看**,确认他要继续,再进入付费环节。 --- ## 第 2 步 · 请求授权(未付费会返回 402) ``` POST https://skills-gate.airpriv.com/api/porter-fetch-license Content-Type: application/json {"machine_fp":"<本机指纹串,8–128 位字母数字/连字符,可省略>"} ``` **首次调用一定拿到 `402 Payment Re