Create Download Request¶
创建文件下载任务。
前提条件¶
已创建和启用数据读取通道,且该读取通道不是跨源通道。
请求格式¶
POST https://{apigw-address}/data-federation/v2.0/channels/read/{channelId}/download-request
请求参数(URI)¶
名称 |
位置(Path/Query) |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|---|
channelId |
Path |
必需 |
String |
文件下载任务使用的通道 ID。 |
orgId |
Query |
必需 |
String |
应用所属的 OU ID。如何获取 orgId 信息 >> |
请求参数(Body)¶
名称 |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|
taskName |
必需 |
String |
指定文件下载任务名称。 |
sourceName |
必需 |
String |
指定读取通道绑定的数据源。目前仅支持 Hive(EnOS)数据源,值为 |
querySql |
必需 |
String |
配置 SQL 查询语句,自定义需要下载的数据内容和格式等。 |
filePackageName |
必需 |
String |
指定下载文件的名称。 |
files |
可选 |
List<JSON Object> |
配置下载文件的相关信息,包括文件编码方式,是否启用分区下载文件等。File 结构体 >> |
callbackURL |
可选 |
String |
指定接收回调消息的 URL。当下载任务完成后,通过 HTTP POST 请求的方式向指定的 URL 地址发送下载结果的通知。返回参数详见 CallBackURL 返回参数。 |
File 结构体¶
名称 |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|
split |
必需 |
Boolean |
是否启用分区下载功能, |
encoding |
必需 |
String |
指定所下载的文件的编码方式,支持 |
delimiter |
String |
Boolean |
指定所下载的文件中字段的分隔符,支持 |
fileHeader |
必需 |
List<String> |
指定所下载的文件的表头信息,表头的字段之间使用 |
fileRename |
可选 |
List<JSON Object> |
当启用分区下载功能( |
响应参数¶
名称 |
数据类型 |
描述 |
---|---|---|
taskId |
String |
所创建的文件下载任务 ID。 |
CallBackURL 返回参数¶
在 Hive 数据下载任务完成后,系统向 callbackURL 地址发送一个 HTTP POST 请求,请求体中包含以下返回字段。
名称 |
数据类型 |
描述 |
---|---|---|
id |
String |
下载任务 ID。 |
returnCode |
String |
下载任务的执行结果状态码。
|
download_url |
String |
下载成功( |
log_url |
String |
下载失败( |
dataSize |
String |
下载的数据文件大小,单位是 byte。 |
示例¶
请求示例¶
url: https://{apigw-address}/data-federation/v2.0/channels/read/yourchannelId/download-request?orgId=yourOrgId
method: POST
requestBody:
{
"taskName": "Test_download_openapi",
"sourceName": "hive_enos"
"querySql": "select * from students",
"filePackageName": "studentsOpenAPI",
"callbackURL":"http://localhost:8080",
"files": {
"split": true,
"encoding": "utf-8",
"delimiter": ",",
"fileHeader": [
"c1",
"c2",
"c3",
"c4",
"c5",
"c6"
],
"fileRename": {
"1": "group1",
"2": "group2",
"3": "group3",
"4": "group4"
}
}
}
返回示例¶
{
"msg": "OK",
"code": 0,
"data": {
"taskId": "yourtaskId"
}
}