本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Python 相容性
CodeArtifact 支援 、pip、 twineuv和其他 Python 用戶端/simple/<project>/使用的 PyPI Simple Repository API。用戶端會使用Accept請求標頭在 HTML 和 JSON 回應之間進行選擇。
Simple Repository API 支援
CodeArtifact 實作 PyPI Simple Repository API 的 1.1 版,如 PEP 503
/simple/<project>/ 端點支援下列Accept標頭內容類型:
application/vnd.pypi.simple.v1+json:JSON 回應 (PEP 691、PEP 700)。application/vnd.pypi.simple.v1+html:HTML 回應 (PEP 503)。application/vnd.pypi.simple.latest+json: 解析為最新支援的 JSON 版本。application/vnd.pypi.simple.latest+html:解析為最新支援的 HTML 版本。text/html、*/*或無Accept標頭:HTML 回應 (預設為回溯相容性)。
如果用戶端指定的Accept標頭不包含任何支援的內容類型,CodeArtifact 會傳回 406 Not Acceptable。
JSON 回應包括 PEP 700 欄位 versions、 size和 upload-time以及 PEP 691 欄位。HTML 回應具有與每個成品連結上的data-upload-time屬性相同的每個成品上傳時間。
每個資產中繼資料擷取啟用之前快取的套件版本可能缺少 size和 upload-time 欄位。當用戶端透過 JSON Simple Repository API 請求這類套件時,CodeArtifact 會從上游登錄檔重新擷取中繼資料,並填入缺少的欄位。不需要客戶動作,且對相同套件版本的後續請求會傳回完整的中繼資料。
pip 23.0 和更新版本,並預設uv傳送 JSON Accept標頭,因此大多數用戶端無需任何額外組態即可接收 JSON。
範例:請求專案的 JSON
下列範例使用 curl來擷取requests專案的 JSON Simple Repository API 回應。從 取得儲存庫 URLaws codeartifact get-repository-endpoint,以及從 取得授權字符aws codeartifact get-authorization-token。
curl --header "Accept: application/vnd.pypi.simple.v1+json" \ --header "Authorization: Bearer $CODEARTIFACT_AUTH_TOKEN" \ "https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/pypi/my_repo/simple/requests/"
注意
CodeArtifact PyPI 端點接受 HTTP 基本身分驗證 (使用者名稱 aws,密碼設定為您的授權字符) 或承載字符身分驗證。本指南其他位置顯示的 pip和 twine組態使用 HTTP Basic。
下列範例顯示典型的 JSON 回應 (為了簡潔起見而截斷)。versions、 size和 upload-time 欄位來自 PEP 700;hashes、 requires-python和 yanked 欄位來自 PEP 691。
{ "meta": { "api-version": "1.1" }, "name": "requests", "versions": [ "2.31.0", "2.32.0", "2.32.3" ], "files": [ { "filename": "requests-2.32.3-py3-none-any.whl", "url": "2.32.3/requests-2.32.3-py3-none-any.whl", "hashes": { "sha256": "70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6", "md5": "df6df19f49fc7ae54ee5ff2dd3d22d2c" }, "requires-python": ">=3.8", "size": 64928, "upload-time": "2024-05-29T15:37:49.123456Z", "yanked": false } ] }
不支援的 PyPI API APIs
CodeArtifact 不支援下列 PyPI APIs:
PyPI XML-RPC API
。 PyPI Warehouse JSON API
,可在 下提供專案層級和發行層級的 JSON 端點 /pypi/。這是與 Simple Repository API 的 PEP 691 JSON 變體不同的 API,CodeArtifact 支援此變體。專案清單端點
/simple/。僅/simple/<project>/支援專案詳細資訊端點。
如需 PyPI APIs的詳細資訊,請參閱 Python Packaging Authority 的 GitHub 網站上的舊版 API
pip 命令支援
下列各節摘要說明 CodeArtifact 儲存庫支援的 pip 命令,以及不支援的特定命令。
支援與儲存庫互動的命令
本節列出pip命令,其中pip用戶端向已設定的登錄檔提出一或多個請求。已驗證這些命令在針對 CodeArtifact 儲存庫調用時可正常運作。
CodeArtifact 不會實作 pip search。如果您已pip設定 CodeArtifact 儲存庫,執行 pip search會搜尋並顯示來自 PyPI
支援的用戶端命令
這些命令不需要與儲存庫進行任何直接互動,因此 CodeArtifact 不需要執行任何動作來支援儲存庫。