
# 调用智能体运行时--下载文件 - ExecuteRuntimeDownloadFiles
#### 功能介绍
该接口用于调用已经部署好的高代码智能体运行时，在智能体内下载文件。
部署智能体运行时请参见[部署智能体运行时](https://support.huaweicloud.com/highcode-agentarts/agentarts_10_031.html)。
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-agentarts/agentarts_07_0003.html)。
#### 授权信息
当前API调用无需身份策略权限。
#### URI
GET /runtimes/{runtime_name}/download-files
表1路径参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
|:---|:---|:---|:---|
| runtime_name | 是    | String | **参数解释**： 智能体运行时名称。 智能体运行时名称获取方式： 1. 进入AgentArts平台，在左侧导航栏选择"部署运行 \> 智能体运行时 "。   2. 在智能体运行时列表中"智能体运行时名称/ID"处获取智能体运行时名称。    **约束限制**: 不涉及。 **取值范围**： 以小写字母开头，以小写字母或数字结尾，可以包含小写字母、数字和中划线，长度为2-48个字符。 **默认取值**: 不涉及。 |
   
表2Query参数 
| 参数        | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
|:---|:---|:---|:---|
| path      | 是    | String  | **参数解释**： 智能体运行时内需要下载的源文件路径（URL 编码）。 **约束限制**: 不允许使用*/* 根目录，不允许出现*\\x00、\\n、\\r、;、\|、\&、$、\\\\*、!、{、}\`等特殊字符 **取值范围**： 参考linux的文件路径格式，支持绝对路径和相对路径（相对路径不允许使用..）。 **默认取值**: 无                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| recursive | 否    | Boolean | **参数解释**： '*true* 时按归档包下载（多文件下载），默认为 *false*（单文件下载）' **约束限制**: 不涉及。 **取值范围**： true或者false **默认取值**: 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| endpoint  | 否    | String  | **参数解释**： 用于调用智能体运行时使用的访问方式名称，访问指定的智能体运行时版本。 获取访问方式名称请参考如下： 1. 进入AgentArts平台，在左侧导航栏选择"部署运行 \> 智能体运行时 "。   2. 单击已创建的智能体运行时名称，在"基本信息"页签下即可查看访问方式。    如未创建访问方式，则默认使用该运行时的Latest访问方式。 **约束限制**: 不涉及。 **取值范围**： 以字母开头，以字母或数字结尾，可以包含字母、数字和中划线，长度为2-48个字符。 **默认取值**: Latest |
   
#### 请求参数
表3请求Header参数 
| 参数                        | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|:---|
| X-Hw-Agentarts-Session-Id | 是    | String | **参数解释**： 会话ID，每个会话的唯一标识符。用户可将会话ID设置为任意字符串，例如"123e4567e89b12d3a456426614174000"，无需在其他地方获取。 **约束限制**: 不涉及。 **取值范围**： 由英文，数字，"-"，"_"组成，不超过64位字符。 **默认取值**: 不涉及。                                                                                                                     |
| X-Hw-Agentgateway-User-Id | 否    | String | **参数解释**： 本次智能体运行时调用对应的用户唯一ID，用于标识此次调用的用户身份，用户可将会话ID设置为任意字符串，例如"123e4567e89b12d3a456426614174000"，无需在其他地方获取。 **约束限制**: 不涉及。 **取值范围**： 由英文，数字，"-"，"_"组成，不超过128位字符。 **默认取值**: 不涉及。                                                                                                  |
| Authorization             | 是    | String | **参数解释**： 本次智能体运行时调用对应的身份认证凭据。需要根据实际的智能体运行时的入站身份认证方式获取对应的身份认证凭据。 API Key认证、IAM认证及OAuth 2.0认证具体请参见[认证鉴权](https://support.huaweicloud.com/api-agentarts/agentarts_07_0005.html)。 **约束限制**: 不涉及。 **取值范围**： 不超过4096位字符。 **默认取值**: 不涉及。 |
| X-Sdk-Content-Sha256      | 否    | String | **参数解释**： 如果智能体运行时的入站认证类型为IAM认证时，需要指定该Header头为UNSIGNED-PAYLOAD。 **约束限制**: 不涉及。 **取值范围**： 固定为UNSIGNED-PAYLOAD。 **默认取值**: 不涉及。                                                                                                                                                      |
   
#### 响应参数
**状态码：200**
下载成功，返回文件流或归档包
**状态码：400**
表4响应Body参数 
| 参数            | 参数类型    | 描述                                                                                                                                                                                        |
|:---|:---|:---|
| error_code    | Integer | **参数解释**: 异常错误码。 **取值范围**: 不涉及。              |
| error_message | String  | **参数解释**： 错误详细信息。 **取值范围**： 长度为 1 - 512 个字符。 |
   
**状态码：401**
表5响应Body参数 
| 参数      | 参数类型    | 描述                                                                                                                                                                                        |
|:---|:---|:---|
| code    | Integer | **参数解释**: 异常错误码。 **取值范围**: 不涉及。              |
| message | String  | **参数解释**： 错误详细信息。 **取值范围**： 长度为 1 - 512 个字符。 |
   
**状态码：404**
表6响应Body参数 
| 参数            | 参数类型    | 描述                                                                                                                                                                                        |
|:---|:---|:---|
| error_code    | Integer | **参数解释**: 异常错误码。 **取值范围**: 不涉及。              |
| error_message | String  | **参数解释**： 错误详细信息。 **取值范围**： 长度为 1 - 512 个字符。 |
   
**状态码：429**
表7响应Body参数 
| 参数            | 参数类型    | 描述                                                                                                                                                                                        |
|:---|:---|:---|
| error_code    | Integer | **参数解释**: 异常错误码。 **取值范围**: 不涉及。              |
| error_message | String  | **参数解释**： 错误详细信息。 **取值范围**： 长度为 1 - 512 个字符。 |
   
**状态码：500**
表8响应Body参数 
| 参数      | 参数类型    | 描述                                                                                                                                                                                        |
|:---|:---|:---|
| code    | Integer | **参数解释**: 异常错误码。 **取值范围**: 不涉及。              |
| message | String  | **参数解释**： 错误详细信息。 **取值范围**： 长度为 1 - 512 个字符。 |
   
**状态码：503**
表9响应Body参数 
| 参数            | 参数类型    | 描述                                                                                                                                                                                        |
|:---|:---|:---|
| error_code    | Integer | **参数解释**: 异常错误码。 **取值范围**: 不涉及。              |
| error_message | String  | **参数解释**： 错误详细信息。 **取值范围**： 长度为 1 - 512 个字符。 |
   
#### 请求示例
下载文件, gateway_domain为运行时的访问域名，可以在智能体运行时的运行时详情页面中获取
```
GET https://{gateway_domain}/runtimes/{runtime_name}/download-files?path=/tmp/xxx
```
#### 响应示例
**状态码：400**
路径为目录（单文件下载时）
```
{
  "error_message" : "path '/home/user/docs' is a directory",
  "error_code" : 400
}
```
**状态码：404**
路径不存在
```
{
  "error_message" : "path '/home/user/missing.txt' does not exist",
  "error_code" : 404
}
```
**状态码：429**
接口调用并发数限流
```
{
  "error_message" : "[node-proxy] sandbox download file concurrency exceeded limit",
  "error_code" : 429
}
```
**状态码：503**
执行下载命令失败
```
{
  "error_message" : "execute download command failed",
  "error_code" : 503
}
```
#### 状态码
| 状态码 | 描述                  |
|:---|:---|
| 200 | 下载成功，返回文件流或归档包      |
| 400 | 路径为目录（单文件下载时）       |
| 401 | 未授权（认证令牌缺失、无效或已过期）。 |
| 404 | 路径不存在               |
| 429 | 接口调用并发数限流           |
| 500 | 服务器内部错误。            |
| 503 | 执行下载命令失败            |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-agentarts/ErrorCode.html)。
