更新时间:2024-11-13 GMT+08:00

绑定后端存储

功能介绍

为SFS Turbo 文件系统绑定后端存储

接口约束

该接口仅适用于SFS Turbo 20MB/s/TiB、40MB/s/TiB、125MB/s/TiB、250MB/s/TiB、500MB/s/TiB、1000MB/s/TiB文件系统。请求体参数file_system_path必须是文件系统根目录下不存在的目录名。

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类型后端存储

表4 ObsDataRepository

参数

是否必选

参数类型

描述

bucket

String

OBS桶名称

endpoint

String

OBS桶所在的区域域名

policy

ObsDataRepositoryPolicy object

后端存储自动同步策略

attributes

ObsTargetAttributes object

后端存储属性。2024年6月30日及之前创建,且未升级的文件系统版本不支持该参数,请提工单处理。

表5 ObsDataRepositoryPolicy

参数

是否必选

参数类型

描述

auto_export_policy

AutoExportPolicy object

后端存储自动导出策略。当文件系统发生数据更新时,将自动导出到OBS桶。

表6 AutoExportPolicy

参数

是否必选

参数类型

描述

events

Array of strings

后端存储自动导出到OBS桶的数据更新类型。

  • NEW:表示新增数据,SFS Turbo联动目录下创建的文件,及之后对这些文件进行的元数据和数据修改,会被自动同步到OBS桶里。

  • CHANGED:表示修改数据,从OBS桶里导入到SFS Turbo联动目录下的文件,在SFS Turbo上对这些文件所进行的数据和元数据的修改,会被自动同步到OBS桶里。

  • DELETED:表示删除数据,在SFS Turbo联动目录下删除文件,OBS桶对应的对象也会被删除,只有被SFS Turbo写入的OBS对象才会被删除。

表7 ObsTargetAttributes

参数

是否必选

参数类型

描述

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 状态暂不支持。

obs

ObsDataRepository object

OBS类型后端存储

表10 FailureDetailsMessage

参数

参数类型

描述

message

String

错误信息

表11 ObsDataRepository

参数

参数类型

描述

bucket

String

OBS桶名称

endpoint

String

OBS桶所在的区域域名

policy

ObsDataRepositoryPolicy object

后端存储自动同步策略

attributes

ObsTargetAttributes object

后端存储属性。2024年6月30日及之前创建,且未升级的文件系统版本不支持该参数,请提工单处理。

表12 ObsDataRepositoryPolicy

参数

参数类型

描述

auto_export_policy

AutoExportPolicy object

后端存储自动导出策略。当文件系统发生数据更新时,将自动导出到OBS桶。

表13 AutoExportPolicy

参数

参数类型

描述

events

Array of strings

后端存储自动导出到OBS桶的数据更新类型。

  • NEW:表示新增数据,SFS Turbo联动目录下创建的文件,及之后对这些文件进行的元数据和数据修改,会被自动同步到OBS桶里。

  • CHANGED:表示修改数据,从OBS桶里导入到SFS Turbo联动目录下的文件,在SFS Turbo上对这些文件所进行的数据和元数据的修改,会被自动同步到OBS桶里。

  • DELETED:表示删除数据,在SFS Turbo联动目录下删除文件,OBS桶对应的对象也会被删除,只有被SFS Turbo写入的OBS对象才会被删除。

表14 ObsTargetAttributes

参数

参数类型

描述

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

错误响应

错误码

请参见错误码