# 创建数据导入导出任务 - CreateHpcCacheTask
#### 功能介绍
创建数据导入导出任务。
#### 接口约束
- 该接口仅适用于SFS Turbo 20MB/s/TiB、40MB/s/TiB、125MB/s/TiB、250MB/s/TiB、500MB/s/TiB、1000MB/s/TiB、100MB/s/TiB-智算型、200MB/s/TiB-智算型文件系统。
  
- 该接口仅适用于NFS文件系统共享协议。
  
- 100MB/s/TiB-智算型、200MB/s/TiB-智算型不支持创建任务类型为导出的数据任务。
  
 
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/SFSTurbo/doc?api=CreateHpcCacheTask)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-sfsturbo/sfsturbo_02_0079.html)。
#### URI
POST /v1/{project_id}/sfs-turbo/{share_id}/hpc-cache/task
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述     |
|:---|:---|:---|:---|
| project_id | 是    | String | 项目ID   |
| share_id   | 是    | String | 文件系统ID |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述       |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | 账号的token |
| Content-Type | 是    | String | MIME类型   |
   
表3请求Body参数 
| 参数          | 是否必选 | 参数类型                                                                           | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|:---|
| type        | 是    | String                                                                         | 任务类型，当前支持import（附加元数据导入），import_metadata（快速导入），preload（数据预热），export（导出）。 附加元数据导入方式会导入OBS对象的元数据（名称、大小、最后修改时间）以及来源于SFS Turbo 导出时的附加元数据（如uid、gid、mode）。 快速导入方式仅会导入OBS对象的元数据（名称、大小、最后修改时间），不会导入其它附加元数据（如uid、gid、mode），SFS Turbo会生成默认的附加元数据。 数据预热功能会同时导入元数据和数据内容，数据预热中的元数据导入采用快速导入方式，不会导入其它附加元数据（如uid、gid、mode）。 数据导出功能会将您在联动目录里创建的文件，以及对从OBS导入后又做过修改的文件导出存储到OBS桶里。 枚举值： - import：表示附加元数据导入。   - preload：表示数据预热。   - export：表示导出。   - import_metadata：表示快速导入。    |
| src_target  | 是    | String                                                                         | 联动目录名称                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| src_prefix  | 否    | String                                                                         | 导入导出任务的源端路径前缀，长度为1\~1023个字符之间。导入时不需要包含OBS桶名，导出时不需要包含联动目录名称。 当 type 为 import、import_metadata、preload 时，该参数必须是 OBS后端存储内的相对路径前缀。 当 type 为 export 时，该参数必须是文件系统内file_system_path下的相对路径前缀。 如果不带该字段，导入时会导入绑定OBS桶内的所有对象，导出时会导出联动目录下的所有文件。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| dest_target | 是    | String                                                                         | 目前只支持和src_target保持一致。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| dest_prefix | 否    | String                                                                         | 目前只支持和src_prefix保持一致。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| attributes  | 否    | [ObsTargetAttributes] object | 后端存储属性。2024年6月30日及之前创建，且未升级的文件系统版本不支持该参数，请提工单处理。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   
 表4ObsTargetAttributes 
| 参数        | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|:---|
| file_mode | 否    | Integer | 导入的文件权限。取值范围是0到777。 第一位表示文件所有者的权限，取值范围是0到7；第二位表示文件所属用户组的权限，取值范围是0到7；第三位表示其他用户的权限，取值范围是0到7。文件所有者由uid指定，文件所属用户组由gid指定，不是文件所有者且不在文件所属用户组的用户为其他用户。 数字4、2、1分别表示读、写、执行权限，这些数字相加，即可得到所需的权限组合。例如：750中第一位7代表该文件所有者对该文件具有读、写、执行权限；第二位5代表该文件所属用户组对该文件具有读、执行权限；第三位0代表其他用户对该文件无权限。 |
| dir_mode  | 否    | Integer | 导入的目录权限。取值范围是0到777。 第一位表示目录所有者的权限，取值范围是0到7；第二位表示目录所属用户组的权限，取值范围是0到7；第三位表示其他用户的权限，取值范围是0到7。目录所有者由uid指定，目录所属用户组由gid指定，不是目录所有者且不在目录所属用户组的用户为其他用户。 数字4、2、1分别表示读、写、执行权限，这些数字相加，即可得到所需的权限组合。例如：750中第一位7代表该目录所有者对该目录具有读、写、执行权限；第二位5代表该目录所属用户组对该目录具有读、执行权限；第三位0代表其他用户对该文件无权限。 |
| uid       | 否    | Integer | 导入对象所有者的用户id，默认值是0，取值范围是0到4,294,967,294（即2\^32-2）。                                                                                                                                                                                                                                                                                                |
| gid       | 否    | Integer | 导入对象所属用户组id，默认值是0，取值范围是0到4,294,967,294（即2\^32-2）。                                                                                                                                                                                                                                                                                                 |
   
#### 响应参数
**状态码：202**
表5响应Header参数 
| 参数           | 参数类型   | 描述   |
|:---|:---|:---|
| X-request-id | String | 请求ID |
   
表6响应Body参数 
| 参数      | 参数类型   | 描述   |
|:---|:---|:---|
| task_id | String | 任务ID |
   
**状态码：400**
表7响应Header参数 
| 参数           | 参数类型   | 描述   |
|:---|:---|:---|
| X-request-id | String | 请求ID |
   
表8响应Body参数 
| 参数      | 参数类型   | 描述   |
|:---|:---|:---|
| errCode | String | 错误码  |
| errMsg  | String | 错误描述 |
   
**状态码：500**
表9响应Header参数 
| 参数           | 参数类型   | 描述   |
|:---|:---|:---|
| X-request-id | String | 请求ID |
   
表10响应Body参数 
| 参数      | 参数类型   | 描述   |
|:---|:---|:---|
| errCode | String | 错误码  |
| errMsg  | String | 错误描述 |
   
#### 请求示例
- 创建快速导入任务，任务类型是"import_metadata"，联动目录名称是"sfs-link-directory"，关联OBS桶内的源端路径前缀是"input/datasets/"。
  ```
  POST HTTPS://{endpoint}/v1/{project_id}/sfs-turbo/{share_id}/hpc-cache/task
  {
    "type" : "import_metadata",
    "src_target" : "sfs-link-directory",
    "src_prefix" : "input/datasets/",
    "dest_target" : "sfs-link-directory",
    "dest_prefix" : "input/datasets/"
  }
  ```
  
- 创建快速导入任务，任务类型是"import_metadata"，联动目录名称是"sfs-link-directory"，关联OBS桶内的源端路径前缀是"input/datasets/"；指定导入的文件在文件系统内的权限为640，目录权限为750。
  ```
  POST HTTPS://{endpoint}/v1/{project_id}/sfs-turbo/{share_id}/hpc-cache/task
  {
    "type" : "import_metadata",
    "src_target" : "sfs-link-directory",
    "src_prefix" : "input/datasets/",
    "dest_target" : "sfs-link-directory",
    "dest_prefix" : "input/datasets/",
    "attributes" : {
      "file_mode" : 640,
      "dir_mode" : 750
    }
  }
  ```
  
- 创建数据预热任务，任务类型是"preload"，联动目录名称是"sfs-link-directory"，关联OBS桶内的源端路径前缀是"input/datasets/"；指定导入的文件在文件系统内的权限为640，目录权限为750，uid为0，gid为0。
  ```
  POST HTTPS://{endpoint}/v1/{project_id}/sfs-turbo/{share_id}/hpc-cache/task
  {
    "type" : "preload",
    "src_target" : "sfs-link-directory",
    "src_prefix" : "input/datasets/",
    "dest_target" : "sfs-link-directory",
    "dest_prefix" : "input/datasets/",
    "attributes" : {
      "file_mode" : 640,
      "dir_mode" : 750,
      "uid" : 0,
      "gid" : 0
    }
  }
  ```
  
 
#### 响应示例
**状态码：202**
任务下发成功
```
{
  "task_id" : "7bd2a9b6-xxxx-4605-xxxx-512d636001b0"
}
```
**状态码：400**
客户端错误
```
{
  "errCode" : "SFS.TURBO.0001",
  "errMsg" : "parameter error"
}
```
**状态码：500**
内部错误
```
{
  "errCode" : "SFS.TURBO.0005",
  "errMsg" : "Internal server error"
}
```
#### 状态码
| 状态码 | 描述     |
|:---|:---|
| 202 | 任务下发成功 |
| 400 | 客户端错误  |
| 500 | 内部错误   |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-sfsturbo/ErrorCode.html)。
