Upload API

警告

此功能是实验性的,可能会发生重大更改。有关更多信息,请参阅 Conan 稳定性 部分。

警告

子 API 不应自行初始化。它们旨在仅通过主 ConanAPI 属性访问。

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 – 客户端中启用的远程仓库列表。配方源将尝试从这些远程仓库获取,并可能从列出的配方中加载 python_requires。

  • 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,则不会执行实际上传,但仍会准备工件并检查上游服务器。

upload_backup_sources(files: List) None

将备份源代码文件上传到服务器,这些文件通常由 CacheAPI.get_backup_sources() 收集。

参数:

files – 必须上传的文件列表