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