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> 下載帶標籤的成品(例如平台版本)

下載

使用 curl 或 wget 下載軟件套件:

# 最新版本 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 — 要上載的成品

可選欄位:description、category、icon、visibility、changelog,以及用於多製品版本的 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 密鑰。請在擴展設定中設定該方式。