
# 通过客户端上传/下载Composer组件
CodeArts Artifact支持与本地Composer客户端对接，用户A可以通过客户端的方式将本地客户端中的Composer私有组件上传至CodeArts Artifact私有依赖库，其他用户再通过客户端的方式从CodeArts Artifact私有依赖库下载用户A上传的Composer组件，实现Composer组件的共享或传递。
#### Composer组件介绍
Composer是PHP的依赖管理工具，它允许用户声明项目所依赖的库，并且管理这些依赖的安装。这些依赖库通常被称作"包"或者"composer 包"。
#### 约束与限制
不同用户账号的私有依赖库仓库密码不同，当用户以不同账号访问私有依赖库时，如果需要使用仓库密码，则需要在各仓库"操作指导"中重新下载配置文件获取仓库密码。
#### 前提条件
- 请先安装PHP与Composer客户端。
- 已[创建Composer仓库](https://support.huaweicloud.com/usermanual-cloudartifact/cloudartifact_01_0008.html)。
- 需要具备当前仓库的"下载/查看"权限，如需获取"下载/查看"的权限，请参考[配置私有依赖库权限](https://support.huaweicloud.com/usermanual-cloudartifact/cloudartifact_01_0047.html)配置。
 
#### 通过客户端上传Composer组件
1. 使用华为云账号[访问CodeArts Artifact的私有依赖库](https://support.huaweicloud.com/usermanual-cloudartifact/cloudartifact_01_0007.html#cloudartifact_01_0007__section1789618380209)。
2. 在私有依赖库页面选择对应的Composer仓库。
3. 单击页面右侧"操作指导"。
4. 在"操作指导"对话框，单击"下载配置指导文件"，下载配置文件"composer.json"。 
   ![](https://support.huaweicloud.com/usermanual-cloudartifact/zh-cn_image_0000002545458081.png "点击放大")
   
   
5. 获取已下载的配置文件中的**{username}** 、**{password}**。
6. 在本地客户端执行以下命令，将本地Composer软件包上传至对应的私有依赖库。 
   ```
   curl -u {{user}}:{{password}} -X PUT https://{{url}}/{{vendor_name}}/{{project_name}}/{{version}}/{{vendor_name}}-{{project_name}}-{{version}}.zip;composer.version={{version}} -T {{localFile}}
   ```
   - user：[5]中获取的**{username}**。
   
   - password：[5]中获取的**{password}**。
   
   - url：对应Composer私有依赖库的仓库地址。
   
   - vendor_name：软件包vendor名。
   
   - project_name：软件包project名。
   
   - version：软件包版本号。
   
   - localFile：软件包本地存放路径。
   
   - 在Composer私有依赖库中查看已上传的组件。
   
   
   
   
 
#### 通过客户端下载Composer组件
1. 使用华为云账号[访问CodeArts Artifact的私有依赖库](https://support.huaweicloud.com/usermanual-cloudartifact/cloudartifact_01_0007.html#cloudartifact_01_0007__section1789618380209)。
2. 在私有依赖库页面选择对应的Composer仓库。
3. 单击页面右侧"操作指导"。
4. 在"操作指导"对话框，选择"下载配置文件替换"。
5. 根据配置文件中的指导步骤，完成仓库配置和凭证配置的替换。
6. 若无已有composer项目，则初始化项目： 
   ```
   composer init
   ```
   
   
7. 执行如下命令，下载私有库软件包： 
   添加声明软件包依赖。
   ```
   composer require <vendor-name>/<project-name>:<version>
   ```
   下载安装依赖。
   ```
   composer install
   ```
   
   
 
