help.c.nf / 软件包

软件包仓库

p.c.nf 是 CNF 软件包仓库,提供类似 GitHub 的命名空间,用于发布带版本的软件包。每项制品都有稳定 URL、下载计数和访问控制。

概览

p.c.nf 在 <username>/<project> 命名空间下托管软件包。每个项目包含一个或多个版本,每个版本可包含一个或多个可下载制品。

类似 npm 的 @scope/package 或 GitHub 的 user/repo,但用于二进制制品而非源代码。

URL 结构

p.c.nf/ 目录 — 浏览所有公共软件包
p.c.nf/<user> 用户资料 — 列出该用户的软件包
p.c.nf/<user>/<pkg> 项目页面 — 最新版本和历史记录
p.c.nf/<user>/<pkg>/<version> 版本页——制品和更改日志
p.c.nf/<user>/<pkg>/download 下载最新的制品
p.c.nf/<user>/<pkg>/<version>/download 下载特定版本(永久链接)
p.c.nf/<user>/<pkg>/<version>/<label> 下载带标签的制品(例如平台变体)

下载

使用 curlwget 下载软件包:

# 最新版本 curl -LO https://p.c.nf/c/cred-extension/download # 固定版本 curl -LO https://p.c.nf/c/cred-extension/2.0.1/download

下载支持 HTTP Range 请求以断点续传,也支持返回 304 Not Modified 的条件 GET 请求。

速率限制:每个 IP 地址每分钟 30 次下载。超过限制时会返回 429 Retry-After 标头。

发布

可通过控制台或 HTTP API 发布新版本。首次发布时,两种方式都会创建该项目。

通过 API

curl -X POST https://p.c.nf/api/publish \ -H "Authorization: Bearer cnf_..." \ -F "slug=my-tool" \ -F "version=1.0.0" \ -F "file=@dist/my-tool.zip" \ -F "description=Short one-line summary" \ -F "category=Client tools" 已发布 you/my-tool@1.0.0

必填字段:

  • slug — 只能包含小写字母和连字符(最多 128 个字符)
  • version — 自由格式字符串;建议使用语义化版本
  • file — 要上传的制品

可选字段:descriptioncategoryiconvisibilitychangelog,以及用于多制品版本的 label

通过控制台

登录 console.c.nf 并打开下载管理。控制台负责文件上传、元数据和版本更新。

说明:发布需要经过身份验证的 CNF 用户。每位用户只能发布到自己的 /<username>/ 命名空间,不能以其他用户的名义发布。

认证

支持两种身份验证方式:

API 密钥(建议用于自动化)

console.c.nf/account/api 生成密钥,然后将其作为 Bearer 令牌发送:

Authorization: Bearer cnf_a1b2c3d4e5f6...

密钥仅在生成时显示一次。您最多可创建 10 个活动密钥,并可随时撤销。

会话 Cookie

从 console.c.nf 或 id.c.nf 浏览时,会话 Cookie 会自动完成身份验证,适用于浏览器扩展和控制台。

可见度

public 列入目录,任何人都可以下载。
unlisted 不列入目录,但任何持有 URL 的人都可以下载。
private 仅所有者和管理员可以查看或下载。

版本

每个已发布版本都会保留在稳定 URL 中。发布新版本后,旧版本仍然可用,因此固定使用 /1.0.0/download 的使用者会继续获得完全相同的构建。

不含版本号的 /download 端点始终提供最新版本。

版本字符串可使用自由格式文本。为便于理解,建议采用语义化版本(MAJOR.MINOR.PATCH),但系统不会强制执行。

FAQ

p.c.nf 与 d.c.nf 有什么区别?

p.c.nf 是按用户划分命名空间(user/project)的版本化软件包注册表。d.c.nf 是由 CNF 管理员维护的平面下载目录。

可以删除某个版本吗?

可以通过控制台删除。但删除版本会导致使用者保存的固定版本 URL 失效,因此通常更建议发布新版本。

有大小限制吗?

制品大小限制取决于用户权限级别:每个 UPL 级别增加 50 MB,最高约 500 MB。较大的文件可通过控制台分块上传。

如何对扩展程序进行身份验证?

登录 console.c.nf 后,CNF Cred 扩展既可使用会话 Cookie,也可使用 API 密钥。请在扩展设置中配置该方式。