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