上传 API
https://upload.pypi.org/legacy/提供的 API 端点 是 Warehouse 对旧版 PyPI 上传 API 的模拟。Twine 等工具使用此端点将发行版上传到 PyPI。
路线
上传文件
重要的
PyPI 上的版本是通过一次上传一个文件的方式创建的。
新版本上传的第一个文件会创建一个该版本的发布版本,并填充其元数据。
路线:POST upload.pypi.org/legacy/
可以使用上传 API 上传工件,方法是发送multipart/form-data
包含以下字段的 POST 请求:
:action设置为file_uploadprotocol_version设置为1content包含要上传的文件和正确的文件名(例如my_foo_bar-4.2-cp36-cp36m-manylinux1_x86_64.whl)- 以下哈希摘要之一:
md5_digest将上传文件的 MD5 哈希值设置为 URL 安全 Base64 编码(无填充)sha256_digest设置为十六进制的 SHA2-256 哈希值blake2_256_digest设置为 Blake2b 256 位十六进制哈希值
filetype必须设置为工件的类型:bdist_wheel或sdist。pyversion必须设置为Python 标签才能bdist_wheel上传,或者设置source为sdist上传。metadata_version并且必须根据 核心元数据规范name进行设置。versionattestations可以设置为包含证明对象的 JSON 数组。如果 PyPI 无法验证提供的每个证明,则会拒绝上传。-
您可以设置核心元数据规范中的任何其他字段。
所有字段名称均需改为小写,连字符需替换为下划线。此外,多用途字段(例如
Classifier)需使用复数形式(例如classifiers),但以下列出的少数例外情况除外:元数据字段 表单字段 Platformplatform(不是platforms)Supported-Platformsupported_platform(不是supported_platforms)License-Filelicense_file(不是license_files)警告
必须执行上述转换。发送类似这样的表单字段
Description-Content-Type不会引发错误,但会被静默忽略。