# 查询任务详情

读取一个导出任务及其文件统计。

```text
POST https://moi.matrixorigin.cn/newmoi/export/task/info
```

## 调用前准备

先[查询任务列表](list-export-tasks.md)，确认要查看的导出任务。准备有目标工作区访问权限的个人访问令牌、目标工作区 ID 和导出任务 ID。

下方示例使用：

- `$AI_STUDIO_API_KEY`：实际个人访问令牌，通过 `X-API-Key` Header 传递。
- `$WORKSPACE_ID`：目标工作区 ID，通过 `X-Workspace-ID` Header 传递。
- `$TASK_ID`：要查看的导出任务 ID，填写请求体的 `id` 字段。

## 请求体

| 字段 | 类型 | 是否必填 | 说明 |
| --- | --- | --- | --- |
| `id` | string | 是 | 要查询的导出任务 ID。 |

## 请求示例

```bash
curl -X POST "https://moi.matrixorigin.cn/newmoi/export/task/info" \
  -H "X-API-Key: $AI_STUDIO_API_KEY" \
  -H "X-Workspace-ID: $WORKSPACE_ID" \
  -H 'Content-Type: application/json' \
  -d '{
    "id": "'$TASK_ID'"
  }'
```

## 成功响应

本文中，字段路径中的 `[]` 表示数组中的每一项。例如，`data.config.mo_config.column.export_column[].source_column` 表示 `data.config.mo_config.column.export_column` 数组中每一项的 `source_column` 字段。

成功时返回 `200`。`data` 包含任务定义与文件统计；任务 `status` 为 `2` 仅表示任务已完成，仍应结合 `file_stats.failed` 判断是否存在失败文件。

```json
{
  "code": "OK",
  "msg": "OK",
  "data": {
    "id": "export-task-123",
    "name": "export-to-s3",
    "creator": "user-001",
    "connector_name": "target-s3",
    "type": 5,
    "status": 2,
    "config": {"s3_config": {"path": "exports/", "need_compress": false, "compress_method": ""}},
    "create_time": "2026-08-18T10:00:00Z",
    "end_time": "2026-08-18T10:02:00Z",
    "file_stats": {"total": 4, "pending": 0, "running": 0, "failed": 1, "completed": 3},
    "fileSuccess": 3,
    "fileFail": 1
  }
}
```

响应字段如下。

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `code` | string | 成功时为 `OK`。 |
| `msg` | string | 成功时为 `OK`。 |
| `data.id` | string | 任务 ID。 |
| `data.name` | string | 任务名称。 |
| `data.creator` | string | 创建者标识。 |
| `data.connector_name` | string | 目标连接器名称。 |
| `data.type` | integer | 导出目标类别：`3` 为 MatrixOne，`4` 为 OSS，`5` 为标准 S3。页面会根据所选目标生成该值。 |
| `data.status` | integer | 任务状态：`0` 待处理、`1` 运行中、`2` 已完成、`3` 失败。 |
| `data.config` | object | 创建时保存的导出配置。其字段如下。 |
| `data.config.locale` | string | 任务保存时使用的语言标识。 |
| `data.config.merge_title_to_text` | boolean | 任务保存的标题合并文本设置。 |
| `data.config.s3_config` | object 或 null | 对象存储任务的目标配置；非对象存储任务为 `null` 或不返回。 |
| `data.config.s3_config.path` | string | 连接器存储桶内的导出路径。 |
| `data.config.s3_config.need_compress` | boolean | 是否压缩导出内容。 |
| `data.config.s3_config.compress_method` | string | 压缩方式。 |
| `data.config.mo_config` | object 或 null | MatrixOne 任务的目标表配置；非 MatrixOne 任务为 `null` 或不返回。 |
| `data.config.mo_config.database_name` | string | 目标数据库名称。 |
| `data.config.mo_config.table_name` | string | 目标表名称。 |
| `data.config.mo_config.new_table` | boolean | 是否新建目标表。 |
| `data.config.mo_config.duplicated_strategy` | integer | 重复数据处理方式：`1` 覆盖、`2` 跳过、`3` 保留。 |
| `data.config.mo_config.column` | object | 导出列和列映射配置。 |
| `data.config.mo_config.column.export_column` | object（对象数组） | 导出列映射列表。 |
| `data.config.mo_config.column.export_column[].source_column` | string | 处理结果中的源列名。 |
| `data.config.mo_config.column.export_column[].mapping_column` | string | 目标表中的列名。 |
| `data.config.mo_config.column.combine_column` | string（字符串数组） | 合并处理的源列；未合并时为空数组。 |
| `data.create_time` | string 或 null | 创建时间。 |
| `data.end_time` | string 或 null | 结束时间；未结束时为 `null`。 |
| `data.file_stats` | object | 文件数量汇总。 |
| `data.file_stats.total` | integer | 任务中的文件总数。 |
| `data.file_stats.pending` | integer | 待处理文件数。 |
| `data.file_stats.running` | integer | 正在导出的文件数。 |
| `data.file_stats.failed` | integer | 导出失败的文件数。 |
| `data.file_stats.completed` | integer | 已成功完成的文件数。 |
| `data.fileSuccess` | integer | 已成功导出的文件数。 |
| `data.fileFail` | integer | 导出失败的文件数。 |

## 错误响应

```json
{
  "code": "ErrServer",
  "msg": "服务器内部错误",
  "data": null
}
```

### 常见 HTTP 错误

```{list-table}
:header-rows: 1
:widths: 12 24 36 28

* - HTTP 状态码
  - 错误代码
  - 常见原因
  - 建议操作
* - `400`
  - —
  - 请求体无法解析；该兼容路径返回 `error` 字段。
  - 传入包含 `id` 的 JSON 对象。
* - `200`
  - `ErrServer`
  - 任务不存在或详情读取失败。
  - 核对任务 ID 后重试。
* - `403`
  - `ErrForbidden`
  - 当前身份没有读取该任务的权限。
  - 请求授予导出任务读取权限。
```

## 后续操作

用任务 ID [查询导出文件](list-export-task-files.md)查看文件级结果；需要进度汇总时[查询任务状态](get-export-task-state.md)。
