上传 API¶
警告
此功能是实验性的,可能会发生重大更改。有关更多信息,请参阅 Conan 稳定性 部分。
- class UploadAPI(conan_api, api_helpers)¶
此 API 用于将 Recipe 和包上传到远程服务器。
- check_upstream(package_list: PackagesList, remote: Remote, enabled_remotes: List[Remote], force=False)¶
检查
remote
中是否存在package_list
中的 Recipe 和包。如果远程服务器上不存在的项,将在该项中添加一个值为True
的upload
键。如果 Recipe 的上传策略是
skip
,则该 Recipe 将从上传列表中移除。- 参数:
package_list – 一个
PackagesList
对象,包含要检查的 Recipe 和包。remote – 要检查的远程服务器。
enabled_remotes – 已启用远程服务器的列表。此列表用于在必要时从列出的 Recipe 中加载
python_requires
。force – 如果为
True
,将跳过检查并标记所有项都需要上传。将向将要上传的项添加一个force_upload
键。
- prepare(package_list: PackagesList, enabled_remotes: List[Remote], metadata: List[str] = None)¶
压缩 Recipe 和包,并用完整信息填充
upload_data
对象。此方法不执行上传,也不检查上游以确定 Recipe 是否仍然存在。- 参数:
package_list – 一个
PackagesList
对象,包含要上传的 Recipe 和包。enabled_remotes – 客户端中已启用远程服务器的列表。将尝试从这些远程服务器获取 Recipe 源。
metadata – 要上传的元数据模式列表。默认为
None
,表示所有元数据将与包工件一起上传。如果metadata
包含一个空字符串 (""
),则表示不应上传任何元数据文件。
- upload_full(package_list: PackagesList, remote: Remote, enabled_remotes: List[Remote], check_integrity=False, force=False, metadata: List[str] = None, dry_run=False)¶
执行完整的上传过程,包括根据
core.upload:parallel
配置对每个 Recipe 进行并行上传的可能性。- 此方法执行的步骤包括:
调用
conan_api.cache.check_integrity
以确保包没有损坏。- 检查 Recipe 的上传策略。
(如果策略是
"skip"
,则不会上传二进制文件,但仍会上传元数据)。
检查服务器上已存在的 Revision,以便跳过上传。
准备要上传的工件 (压缩
conan_package.tgz
)。执行实际的上传。
上传关联的源代码备份(如果有)。
- 参数:
package_list – 一个
PackagesList
对象,包含要上传的 Recipe 和包。remote – 要上传包的远程服务器。
enabled_remotes – 客户端中已启用远程服务器的列表。将尝试从这些远程服务器获取 Recipe 源,并在必要时从列出的 Recipe 中加载
python_requires
。check_integrity – 如果为
True
,将在上传包之前检查缓存包的完整性。这有助于确保包没有损坏。force – 如果为
True
,将强制上传 Recipe 和包,即使它们已存在于远程服务器上。请注意,这可能会更新时间戳。metadata – 要上传的元数据模式列表。默认为
None
,表示所有元数据将与包工件一起上传。如果metadata
包含一个空字符串 (""
),则表示不应上传任何元数据文件。dry_run – 如果为
True
,将不执行实际上传,但仍会准备工件并检查上游。