
# 第三方下载录音文件
#### 场景描述
调用该API，第三方（IVR加载定制 jar 包与第三方对接的模式）下载录音文件。
#### 使用说明
- 前提条件
  - 已通过鉴权（Authorization）。
   
- 使用限制 开发者只能下载路径和系统级参数"第三方下载录音路径规则"相同并且属于自己帐号下的文件，详见[C2 监控/系统外呼/话单/知识库类接口鉴权方式](https://support.huaweicloud.com/api-ccfs-cec/cec_07_0003.html#ZH-CN_TOPIC_0000002481273406)。系统级参数"第三方下载录音路径规则"可联系系统管理员获取，获取路径：" 配置中心 \> 系统管理 \> 系统参数配置 \> 系统参数 \> 文件存储服务 \> 路径配置 \> 第三方下载录音路径规则"。
  
 
#### 接口方法
POST
#### 接口URI
https://ip:port/CCFS/resource/ccfs/ivr/downloadFile
其中，ip为CC-FS安装的服务器IP地址，port为CC-FS的HTTPS端口号。
如果经过NSLB路由，ip为NSLB的服务器IP地址，port为CC-FS服务在NSLB映射的HTTPS端口号。
#### 请求说明
表1请求Headers参数说明 
| 序号 | 名称            | 参数类型   | 是否必选 | 默认值 | 说明                                                                                                                            |
|:---|:---|:---|:---|:---|:---|
| 1  | Content-Type  | String | True | 无   | 固定填 application/json;charset=UTF-8。                                                                                           |
| 2  | Authorization | String | True | 无   | 生成方式参见[C2 监控/系统外呼/话单/知识库类接口鉴权方式](https://support.huaweicloud.com/api-ccfs-cec/cec_07_0003.html#ZH-CN_TOPIC_0000002481273406)。 |
   
表2请求Body中request参数说明 
| 序号 | 名称      | 参数类型         | 是否必选 | 默认值 | 说明              |
|:---|:---|:---|:---|:---|:---|
| 1  | version | String（1-32） | True | 2.0 | 协议版本。当前固定值为2.0。 |
   
表3请求Body中msgBody参数说明 
| 序号 | 名称       | 参数类型    | 是否必选  | 默认值 | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|:---|:---|:---|
| 1  | filePath | String  | True  | 无   | mode 传 1，filePath 为文件所在文件夹路径，例如：Y:/voice/1/IVRrecordFile mode 不传或其他取值，filePath 必须是文件全路径，例如：Y:/voice/1/IVRrecordFile/xx.wav 说明：文件路径由系统级参数"第三方下载录音路径规则"控制，请联系系统管理员获取，获取路径：" 配置中心 \> 系统管理 \> 系统参数配置 \> 系统参数 \> 文件存储服务 \> 路径配置 \> 第三方下载录音路径规则"。默认值为：/voice/%VDNNO%/IVRrecordFile;/3rdfile/%VDNNO%/IVRrecordFile;/3rdfile/%VDNNO%/thirdvoicebotfile。 |
| 2  | mode     | Integer | False | 无   | mode 为 1表示 filePath 是个目录，下载目录下唯一的文件，如果目录下不存在文件或者存在多个文件则返回失败；mode 不传或其他取值则 filePath 必须是包含文件名的全路径。                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   
#### 响应说明
当调用本接口响应成功，则从httpresponse消息中获取文件的二进制数据生成录音文件，文件后缀名为.wav，响应中content-type字段为Application/Octet-stream;charset=UTF-8。
当调用本接口响应失败，则返回相应的错误码信息，错误码响应数据结构请查看[表 响应消息response参数说明]，resultData为保留字段，默认为空字符串。
 表4响应消息参数说明 
| 序号 | 名称         | 参数类型   | 说明                                                                                                              |
|:---|:---|:---|:---|
| 1  | resultCode | String | 请求返回的结果码，详见[错误码参考](https://support.huaweicloud.com/api-ccfs-cec/cec_07_0835.html#ZH-CN_TOPIC_0000002481113938)。 |
| 2  | resultDesc | String | 请求结果描述。                                                                                                         |
| 3  | resultData | Object | 请求响应数据                                                                                                          |
   
#### 报文样例
- 请求头
  ```
  POST /CCFS/resource/ccfs/ivr/downloadFile HTTP/1.1
  Authorization: auth-v2/ak/2021-08-31T09:38:50.872Z/content-length;content-type;host/c12f0ed0******************94941bdd106
  Accept: */*
  Content-Type: application/json;charset=UTF-8
  Content-Length: 193
  ```
  
- 请求参数
  ```
  {
      "request": {
          "version": "2.0"
      },
      "msgBody": {
          "filePath": "Y:/3rdfile/53/thirdvoicebotfile",
          "mode":"1"
      }
  }
  ```
  
 
