You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Conan从Artifactory通用仓库下载Zip包?

问题解答

首先明确:conan install --requires确实无法直接下载非Conan包,你的理解是正确的——该命令仅针对遵循Conan规范的包(包含conanfile元数据结构的包),普通zip文件不符合要求。

报错原因分析

你添加的Conan远程地址指向了Conan仓库的API路径,但你的test仓库是Generic类型,并非Conan专用仓库。Conan的download命令会尝试调用Conan仓库的特定API接口,而Generic仓库不支持这些接口,因此返回404错误。


解决方法

方案1:将文件转为Conan包上传(推荐,贴合Conan生态)

如果可以调整仓库或包的形式,建议把zip文件封装成Conan包:

  1. 编写简单的conanfile.py:
    from conan import ConanFile
    from conan.tools.files import copy
    
    class FAPackage(ConanFile):
        name = "fa"
        version = "1.0"
        exports_sources = "fa.zip"
    
        def package(self):
            copy(self, "fa.zip", self.source_folder, self.package_folder)
    
  2. 本地打包:
    conan create .
    
  3. 上传到Artifactory的Conan类型仓库(需先创建Conan仓库,或把现有Generic仓库转为Conan类型),之后即可用常规Conan命令下载:
    conan install --requires=fa/1.0@your_user/your_channel -r conan-af
    
方案2:通过自定义Conan Recipe下载文件

如果不想修改仓库类型或封装包,可以编写自定义Conan recipe,利用Conan的工具链下载Generic仓库的文件:

  1. 创建conanfile.py:
    from conan import ConanFile
    from conan.tools.files import download, unzip
    
    class FAZipDownloader(ConanFile):
        name = "fa_zip"
        version = "1.0"
    
        def package(self):
            # 使用Generic仓库的直接文件URL
            url = "https://artifactory.domain.dev/artifactory/test/components/FA/fa.zip"
            # 下载到Conan包目录,可根据需求修改路径
            download(self, url, f"{self.package_folder}/fa.zip")
            # 如需自动解压,取消下面注释
            # unzip(self, f"{self.package_folder}/fa.zip", self.package_folder)
    
  2. 在该文件目录下执行:
    conan install .
    
    Conan会自动执行下载逻辑,将文件存入本地缓存或指定目录。
方案3:直接用curl/wget下载(最简单)

既然直接访问URL可正常下载,也可以跳过Conan,用常规工具下载:

# curl示例(替换为你的账号密码)
curl -u your_username:your_password https://artifactory.domain.dev/artifactory/test/components/FA/fa.zip -o fa.zip

内容的提问来源于stack exchange,提问作者Veljko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 09:42:52