
# 通过客户端上传/下载Conan组件
CodeArts Artifact支持与本地Conan客户端对接，用户A可以通过客户端的方式将本地Conan客户端中的私有组件上传至CodeArts Artifact私有依赖库，其他用户再通过客户端的方式从CodeArts Artifact私有依赖库下载用户A上传的Conan组件，实现Conan组件的共享或传递。
#### Conan组件介绍
Conan是一个用于C 和C++项目的包管理工具。与Conan 用于管理依赖关系、编译构建过程以及分发软件包。
#### 约束与限制
不同用户账号的私有依赖库仓库密码不同，当用户以不同账号访问私有依赖库时，如果需要使用仓库密码，则需要在各仓库"操作指导"中重新下载配置文件获取仓库密码。
#### 前提条件
- 已安装Conan客户端。
- 已[创建Conan仓库](https://support.huaweicloud.com/usermanual-cloudartifact/cloudartifact_01_0008.html)。
- 需要具备当前仓库的"下载/查看"权限，如需获取"下载/查看"的权限，请参考[配置私有依赖库权限](https://support.huaweicloud.com/usermanual-cloudartifact/cloudartifact_01_0047.html)配置。
 
 #### 进入Conan仓操作指导页面
1. 使用华为云账号[访问CodeArts Artifact的私有依赖库](https://support.huaweicloud.com/usermanual-cloudartifact/cloudartifact_01_0007.html#cloudartifact_01_0007__section1789618380209)。
2. 在私有依赖库页面选择对应的Conan仓库。
3. 在仓库页面右上角，单击"操作指导"，进入配置向导界面。 
   ![](https://support.huaweicloud.com/usermanual-cloudartifact/zh-cn_image_0000002628267388.png "点击放大")
   
   
 
 #### Conan仓库操作指导
**通过修改配置文件添加Conan仓库**
编辑Conan仓库源的配置文件remotes.json，配置文件默认在当前用户目录下：
- conan V1版本路径：{{用户}}/.conan/remotes.json
- conan V2版本路径：{{用户}}/.conan2/remotes.json
1. [进入Conan仓操作指导页面]。
2. 在"操作指导"对话框，选择"下载配置文件替换"。 
   ![](https://support.huaweicloud.com/usermanual-cloudartifact/zh-cn_image_0000002547724813.png "点击放大")
   
   
   
3. 将下载的文件中的内容{"name":"{{xxx}}","url":"https://{{xxx}}/artgalaxy/api/conan/{{xxx}}/","verify_ssl":false}，添加到配置文件中，其中verify_ssl设置为false表示忽略https证书。 
   修改后的remotes.json文件样例如下：
   ![](https://support.huaweicloud.com/usermanual-cloudartifact/zh-cn_image_0000002547684815.png "点击放大")
   - Conan V1版本客户端通过conan user命令配置账号密码。
   
   - Conan V2版本客户端通过conan remote login命令配置账号密码。
   
   
   
   
4. 配置通过后通过conan remote list命令查看仓库是否在显示的列表中。
**通过命令行添加Conan仓库**
| 依赖管理工具      | 操作说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
|:---|:---|
| Conan V1客户端 | 选择conanV1管理工具，复制命令行到本地执行（密码在页面默认隐藏，光标移至命令行，单击命令行上的![](https://support.huaweicloud.com/usermanual-cloudartifact/zh-cn_image_0000002658506717.png)（复制）会自动填充密码到命令行）。 ![](https://support.huaweicloud.com/usermanual-cloudartifact/zh-cn_image_0000002516069540.png "点击放大")                                                                                                                                                            |
| Conan V2客户端 | 选择conanV2管理工具，复制命令行到本地执行（密码在页面默认隐藏，光标移至命令行，单击命令行上的![](https://support.huaweicloud.com/usermanual-cloudartifact/zh-cn_image_0000002658629151.png)（复制）会自动填充密码到命令行）。 说明： 本地配置conan仓库时，conan仓库地址必须以api/conan开头。如https://{{域名}}/artgalaxy/api/conan/{{仓库名}}。 ![](https://support.huaweicloud.com/usermanual-cloudartifact/zh-cn_image_0000002516229456.png "点击放大")  |
   
#### 通过客户端发布Conan组件
1. 参考[Conan仓库操作指导]完成相关配置。
2. 执行如下命令，上传本地的Conan组件到CodeArtsArtifact私有依赖库。 
   ```
   conan upload <PATTERN> -r <REMOTE>
   ```
   - \<REMOTE\>需要替换为仓库别名（具体请参考[Conan仓库操作指导]中"通过命令行添加Conan仓库"添加conan仓库时，定义的仓库别名），例如my-conan-test。
   
   - \<PATTERN\>需要替换为要上传的package或者recipe，recipe格式：\<NAME\>/\<VERSION\>@\<USER\>/\<CHANNEL\> 例如conan upload "\*" -r my-conan-test。
     
   
   
   
   
 
#### 通过客户端下载Conan组件
1. 参考[Conan仓库操作指导]完成相关配置。
2. 执行如下命令，下载conanfile.txt文件中声明的依赖组件。 
   ```
   conan install . -r <REMOTE>
   ```
   其中，\<REMOTE\>需要替换为在[Conan仓库操作指导]中"通过命令行添加Conan仓库"，添加conan仓库时，定义的仓库别名，以my-conan-test为例，使用对应命令为conan install . -r my-conan-test。
   
   
 
