# 绑定后端存储 - CreateBackendTarget
#### 功能介绍
为SFS Turbo文件系统绑定后端存储。
#### 接口约束
- 该接口仅适用于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-智算型文件系统。
  
- 请求体参数file_system_path必须是文件系统根目录下不存在的目录名。
  
- 绑定OBS桶作为后端存储时，仅支持OBS存储桶，不支持OBS并行文件系统。
  
- 创建OBS后端存储库，依赖的服务是对象存储服务 OBS。用户需要额外配置OBS Administrator权限。
  
- 该接口仅适用于NFS文件系统共享协议。
  
 
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/SFSTurbo/doc?api=CreateBackendTarget)中调试该接口，支持自动认证鉴权。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/shares/{share_id}/targets
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述     |
|:---|:---|:---|:---|
| project_id | 是    | String | 项目ID   |
| share_id   | 是    | String | 文件系统ID |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述       |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | 账号的token |
| Content-Type | 是    | String | MIME类型   |
   
表3请求Body参数 
| 参数               | 是否必选 | 参数类型                                                                        | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
|:---|:---|:---|:---|
| file_system_path | 是    | String                                                                      | 联动目录名称，SFS Turbo会在文件系统根目录下以该名称创建一个子目录，该目录用于绑定后端存储。必须是文件系统根目录下不存在的目录名。限制如下： - 仅支持字母、数字、下划线_、中文字符、连字符-、英文句号.   - 长度不能超过63个字符，子目录名称不能是"."或".."   - 不支持多层目录，不能包含字符'/'    |
| obs              | 是    | [ObsDataRepository] object | OBS类型后端存储                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   
 表4ObsDataRepository 
| 参数         | 是否必选 | 参数类型                                                                                    | 描述                                               |
|:---|:---|:---|:---|
| bucket     | 是    | String                                                                                  | OBS桶名称                                           |
| endpoint   | 是    | String                                                                                  | OBS桶所在的区域域名                                      |
| policy     | 否    | [ObsDataRepositoryPolicy] object | 后端存储自动同步策略                                       |
| attributes | 否    | [ObsTargetAttributes] object         | 后端存储属性。2024年6月30日及之前创建，且未升级的文件系统版本不支持该参数，请提工单处理。 |
   
 表5ObsDataRepositoryPolicy 
| 参数                 | 是否必选 | 参数类型                                                                      | 描述                                  |
|:---|:---|:---|:---|
| auto_export_policy | 否    | [AutoExportPolicy] object | 后端存储自动导出策略。当文件系统发生数据更新时，将自动导出到OBS桶。 |
   
 表6AutoExportPolicy 
| 参数     | 是否必选 | 参数类型             | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|:---|
| events | 否    | Array of strings | 后端存储自动导出到OBS桶的数据更新类型。 - NEW：表示新增数据，SFS Turbo联动目录下创建的文件，及之后对这些文件进行的元数据和数据修改，会被自动同步到OBS桶里。   - CHANGED：表示修改数据，从OBS桶里导入到SFS Turbo联动目录下的文件，在SFS Turbo上对这些文件所进行的数据和元数据的修改，会被自动同步到OBS桶里。   - DELETED：表示删除数据，在SFS Turbo联动目录下删除文件，OBS桶对应的对象也会被删除，只有被SFS Turbo写入的OBS对象才会被删除。    枚举值： - **NEW**   - **CHANGED**   - **DELETED**    |
| prefix | 否    | String           | 后端存储内对象匹配前缀                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| suffix | 否    | String           | 后端存储内对象匹配后缀                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
   
 表7ObsTargetAttributes 
| 参数        | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|:---|
| 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**
表8响应Header参数 
| 参数           | 参数类型   | 描述   |
|:---|:---|:---|
| X-request-id | String | 请求ID |
   
表9响应Body参数 
| 参数               | 参数类型                                                                                 | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
|:---|:---|:---|
| target_id        | String                                                                               | 绑定关系ID                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| creation_time    | String                                                                               | 绑定关系创建时间                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| failure_details  | [FailureDetailsMessage] object | 绑定错误信息                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| file_system_path | String                                                                               | 联动目录名称                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| lifecycle        | String                                                                               | 绑定状态。 如果返回状态为CREATING，您需要通过获取后端存储详细信息接口去轮询绑定完成状态。 如果返回状态为AVAILABLE，代表绑定后端存储成功。 如果返回状态MISCONFIGURED，代表绑定后端存储失败。DELETING状态暂不支持。 枚举值： - **CREATING**   - **AVAILABLE**   - **MISCONFIGURED**   - **DELETING**    |
| obs              | [ObsDataRepository] object         | OBS类型后端存储                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
   
 表10FailureDetailsMessage 
| 参数      | 参数类型   | 描述   |
|:---|:---|:---|
| message | String | 错误信息 |
   
 表11ObsDataRepository 
| 参数         | 参数类型                                                                                     | 描述                                               |
|:---|:---|:---|
| bucket     | String                                                                                   | OBS桶名称                                           |
| endpoint   | String                                                                                   | OBS桶所在的区域域名                                      |
| policy     | [ObsDataRepositoryPolicy] object | 后端存储自动同步策略                                       |
| attributes | [ObsTargetAttributes] object         | 后端存储属性。2024年6月30日及之前创建，且未升级的文件系统版本不支持该参数，请提工单处理。 |
   
 表12ObsDataRepositoryPolicy 
| 参数                 | 参数类型                                                                       | 描述                                  |
|:---|:---|:---|
| auto_export_policy | [AutoExportPolicy] object | 后端存储自动导出策略。当文件系统发生数据更新时，将自动导出到OBS桶。 |
   
 表13AutoExportPolicy 
| 参数     | 参数类型             | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|
| events | Array of strings | 后端存储自动导出到OBS桶的数据更新类型。 - NEW：表示新增数据，SFS Turbo联动目录下创建的文件，及之后对这些文件进行的元数据和数据修改，会被自动同步到OBS桶里。   - CHANGED：表示修改数据，从OBS桶里导入到SFS Turbo联动目录下的文件，在SFS Turbo上对这些文件所进行的数据和元数据的修改，会被自动同步到OBS桶里。   - DELETED：表示删除数据，在SFS Turbo联动目录下删除文件，OBS桶对应的对象也会被删除，只有被SFS Turbo写入的OBS对象才会被删除。    枚举值： - **NEW**   - **CHANGED**   - **DELETED**    |
| prefix | String           | 后端存储内对象匹配前缀                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| suffix | String           | 后端存储内对象匹配后缀                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
   
 表14ObsTargetAttributes 
| 参数        | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|
| 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）。                                                                                                                                                                                                                                                                                                   |
   
**状态码：400**
表15响应Body参数 
| 参数      | 参数类型   | 描述   |
|:---|:---|:---|
| errCode | String | 错误码  |
| errMsg  | String | 错误描述 |
   
**状态码：500**
表16响应Body参数 
| 参数      | 参数类型   | 描述   |
|:---|:---|:---|
| errCode | String | 错误码  |
| errMsg  | String | 错误描述 |
   
#### 请求示例
- 绑定后端存储，文件系统ID为"630509b1-ded4-476e-8d06-dbbc3dc23900"，待绑定的OBS桶名为myBucket，待绑定的OBS桶endpoint为obs.region.example.com，联动目录名称为sfsturboDirName。
  ```
  POST HTTPS://{endpoint}/v1/{project_id}/sfs-turbo/shares/630509b1-ded4-476e-8d06-dbbc3dc23900/targets
  {
    "file_system_path" : "sfsturboDirName",
    "obs" : {
      "bucket" : "myBucket",
      "endpoint" : "obs.region.example.com"
    }
  }
  ```
  
- 绑定后端存储，文件系统ID为"630509b1-ded4-476e-8d06-dbbc3dc23900"，待绑定的OBS桶名为myBucket，待绑定的OBS桶endpointobs.region.example.com，联动目录名称为sfsturboDirName，指定导入的文件在文件系统的权限为750，指定导入的目录在文件系统的权限为640。
  ```
  POST HTTPS://{endpoint}/v1/{project_id}/sfs-turbo/shares/630509b1-ded4-476e-8d06-dbbc3dc23900/targets
  {
    "file_system_path" : "sfsturboDirName",
    "obs" : {
      "bucket" : "myBucket",
      "endpoint" : "obs.region.example.com",
      "attributes" : {
        "file_mode" : 750,
        "dir_mode" : 640
      }
    }
  }
  ```
  
- 绑定后端存储，文件系统ID为"630509b1-ded4-476e-8d06-dbbc3dc23900"，待绑定的OBS桶名为myBucket，待绑定的OBS桶endpoint为obs.region.example.com，联动目录名称为sfsturboDirName，指定导入的文件在文件系统的权限为750，指定导入的目录在文件系统的权限为640，指定导入的文件及目录在文件系统的uid为0、gid为0。
  ```
  POST HTTPS://{endpoint}/v1/{project_id}/sfs-turbo/shares/630509b1-ded4-476e-8d06-dbbc3dc23900/targets
  {
    "file_system_path" : "sfsturboDirName",
    "obs" : {
      "bucket" : "myBucket",
      "endpoint" : "obs.region.example.com",
      "attributes" : {
        "file_mode" : 750,
        "dir_mode" : 640,
        "uid" : 0,
        "gid" : 0
      }
    }
  }
  ```
  
- 绑定后端存储，文件系统ID为"630509b1-ded4-476e-8d06-dbbc3dc23900"，待绑定的OBS桶名为myBucket，待绑定的OBS桶endpoint为obs.region.example.com，联动目录名称为sfsturboDirName，指定自动导出策略为"NEW"、"CHANGED"、"DELETED"。
  ```
  POST HTTPS://{endpoint}/v1/{project_id}/sfs-turbo/shares/630509b1-ded4-476e-8d06-dbbc3dc23900/targets
  {
    "file_system_path" : "sfsturboDirName",
    "obs" : {
      "bucket" : "myBucket",
      "endpoint" : "obs.region.example.com",
      "policy" : {
        "auto_export_policy" : {
          "events" : [ "NEW", "CHANGED", "DELETED" ]
        }
      }
    }
  }
  ```
  
 
#### 响应示例
**状态码：202**
任务下发成功
```
{
  "target_id" : "00000334-xxxx-402d-a5d4-bxxxxx87b939",
  "creation_time" : "2023-11-19T04:02:03",
  "file_system_path" : "sfsturboDirName",
  "lifecycle" : "CREATING",
  "obs" : {
    "bucket" : "myBucket",
    "endpoint" : "obs.region.example.com"
  }
}
```
**状态码：400**
错误响应
```
{
  "errCode" : "SFS.TURBO.0001",
  "errMsg" : "request path/body parameters invalid"
}
```
**状态码：500**
错误响应
```
{
  "errCode" : "SFS.TURBO.0005",
  "errMsg" : "internal server error"
}
```
#### 状态码
| 状态码 | 描述     |
|:---|:---|
| 202 | 任务下发成功 |
| 400 | 错误响应   |
| 500 | 错误响应   |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-sfsturbo/ErrorCode.html)。
