軟件套件儲存庫
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 下載軟件套件:
下載支援 HTTP Range 請求以斷點續傳,也支援返回 304 Not Modified 的條件式 GET 請求。
速率限制:每個 IP 地址每分鐘 30 次下載。超過限制時會返回 429 Retry-After 標頭。
發佈
可透過控制台或 HTTP API 發佈新版本。首次發佈時,兩種方式都會建立該項目。
透過 API
必填欄位:
slug— 只可包含小寫字母和連字號(最多 128 個字元)version— 自由格式字串;建議使用語義化版本file— 要上載的成品
可選欄位:description、category、icon、visibility、changelog,以及用於多製品版本的 label。
透過控制台
登入 console.c.nf 並打開下載管理。控制台負責檔案上載、元資料和版本更新。
/<username>/ 命名空間,不能以其他用戶的名義發佈。身份驗證
支援兩種身份驗證方式:
API 密鑰(建議用於自動化)
在 console.c.nf/account/api 產生密鑰,然後將它作為 Bearer 權杖發送:
密鑰只會在產生時顯示一次。你最多可建立 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 密鑰。請在擴展設定中設定該方式。