华为云用户手册

  • 响应示例 状态码: 200 查询列表成功,返回body { "shares" : [ { "id" : "8fba8253-c914-439d-ae8b-d5c89d0bf5e8", "name" : "sfs-turbo-8468", "status" : "100", "version" : "1.0.0", "region" : "north-1", "created_at" : "2018-11-19T04:02:03", "export_location" : "192.168.0.90:/", "action_progress" : { "CREATING" : "22%" }, "share_type" : "STANDARD", "sub_status" : "", "availability_zone" : "az1.dc1", "az_name" : "az1", "vpc_id" : "b24e39e1-bc0c-475b-ae0c-aef9cf240af3", "subnet_id" : "86fc01ea-8ec8-409d-ba7a-e0ea16d4fd97", "security_group_id" : "50586458-aec9-442c-bb13-e08ddc6f1b7a", "size" : "500.00", "pay_model" : "0", "avail_capacity" : "500.00", "share_proto" : "NFS" }, { "id" : "65f2d30b-7b4e-4786-9608-4324faef6646", "name" : "sfs-turbo-df12", "status" : "200", "version" : "1.0.0", "region" : "north-1", "created_at" : "2018-11-15T02:32:10", "export_location" : "65f2d30b-7b4e-4786-9608-4324faef6646.sfsturbo.internal:/", "optional_endpoint" : "192.168.0.90 192.168.0.89", "share_type" : "HPC_PERFORMANCE_250M", "expand_type" : "hpc", "sub_status" : "", "availability_zone" : "az1.dc1", "az_name" : "az1", "vpc_id" : "b24e39e1-bc0c-475b-ae0c-aef9cf240af3", "subnet_id" : "86fc01ea-8ec8-409d-ba7a-e0ea16d4fd97", "security_group_id" : "50586458-aec9-442c-bb13-e08ddc6f1b7a", "size" : "3686.00", "pay_model" : "0", "avail_capacity" : "3686.00", "share_proto" : "NFS" } ] }
  • 请求消息体(可选) 该部分可选。请求消息体通常以结构化格式(如JSON或XML)发出,与请求消息头中Content-Type对应,传递除请求消息头之外的内容。若请求消息体中的参数支持中文,则中文字符必须为UTF-8编码。 每个接口的请求消息体内容不同,也并不是每个接口都需要有请求消息体(或者说消息体为空),GET、DELETE操作类型的接口就不需要消息体,消息体具体内容需要根据具体接口而定。 对于获取用户Token接口,您可以从接口的请求部分看到所需的请求参数及参数说明。将消息体加入后的请求如下所示,加粗的斜体字段需要根据实际值填写,其中username为用户名,domainname为用户所属的账号名称,********为用户登录密码,xxxxxxxxxxxxxxxxxx为project的名称,如“cn-north-1”,您可以从地区和终端节点获取。 scope参数定义了Token的作用域,下面示例中获取的Token仅能访问project下的资源。您还可以设置Token的作用域为某个账号下所有资源或账号的某个project下的资源,详细定义请参见获取用户Token。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", "password": "********", "domain": { "name": "domainname" } } } }, "scope": { "project": { "name": "xxxxxxxxxxxxxxxxxx" } } } } 到这里为止这个请求需要的内容就具备齐全了,您可以使用curl、Postman或直接编写代码等方式发送请求调用API。对于获取用户Token接口,返回的响应消息头中的“x-subject-token”就是需要获取的用户Token。有了Token之后,您就可以使用Token认证调用其他API。
  • 请求方法 HTTP请求方法(也称为操作或动词),它告诉服务您正在请求什么类型的操作。 表2 HTTP方法 方法 说明 GET 请求服务器返回指定资源。 PUT 请求服务器更新指定资源。 POST 请求服务器新增资源或执行特殊操作。 DELETE 请求服务器删除指定资源,如删除对象等。 HEAD 请求服务器资源头部。 PATCH 请求服务器更新资源的部分内容。 当资源不存在的时候,PATCH可能会去创建一个新的资源。 在获取用户Token的URI部分,您可以看到其请求方法为“POST”,则其请求为: 1 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens
  • 请求URI 请求URI由如下部分组成: {URI-scheme}://{Endpoint}/{resource-path}?{query-string} 尽管请求URI包含在请求消息头中,但大多数语言或框架都要求您从请求消息中单独传递它,所以在此单独强调。 表1 URI中的参数说明 参数 描述 URI-scheme 表示用于传输请求的协议,当前所有API均采用HTTPS协议。 Endpoint 指定承载REST服务端点的服务器域名或IP,不同服务不同区域的Endpoint不同,您可以从地区和终端节点获取。 例如IAM服务在“华北-北京四”区域的Endpoint为“iam.cn-north-4.myhuaweicloud.com”。 resource-path 资源路径,即API访问路径。从具体API的URI模块获取,例如“获取用户Token”API的resource-path为“/v3/auth/tokens”。 query-string 查询参数,是可选部分,并不是每个API都有查询参数。查询参数前面需要带一个“?”,形式为“参数名=参数取值”,例如“?limit=10”,表示查询不超过10条数据。 例如您需要获取IAM在“华北-北京四”区域的Token,则需使用“华北-北京四”区域的Endpoint(iam.cn-north-4.myhuaweicloud.com),并在获取用户Token的URI部分找到resource-path(/v3/auth/tokens),拼接起来如下所示。 1 https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens 图1 URI示意图 为方便查看,在每个具体API的URI部分,只给出resource-path部分,并将请求方法写在一起。这是因为URI-scheme都是HTTPS,而Endpoint在同一个区域也相同,所以简洁起见将这两部分省略。
  • 请求消息头 附加请求头字段,如指定的URI和HTTP方法所要求的字段。例如定义消息体类型的请求头“Content-Type”,请求鉴权信息等。 详细的公共请求消息头字段请参见表3。 表3 公共请求消息头 名称 描述 是否必选 示例 Host 请求的服务器信息,从服务API的URL中获取。值为hostname[:port]。端口缺省时使用默认的端口,https的默认端口为443。 否 使用AK/SK认证时该字段必选。 code.test.com or code.test.com:443 Content-Type 消息体的类型(格式)。推荐用户使用默认值application/json,有其他取值时会在具体接口中专门说明。 是 application/json Content-Length 请求body长度,单位为Byte。 否 3495 X-Project-Id project id,项目编号。请参考获取项目ID章节获取项目编号。 否 如果是专属云场景采用AK/SK认证方式的接口请求,或者多project场景采用AK/SK认证的接口请求,则该字段必选。 e9993fc787d94b6c886cbaa340f9c0f4 X-Auth-Token 用户Token。 用户Token也就是调用获取用户Token接口的响应值,该接口是唯一不需要认证的接口。 请求响应成功后在响应消息头(Headers)中包含的“X-Subject-Token”的值即为Token值。 否 使用Token认证时该字段必选。 注:以下仅为Token示例片段。 MIIPAgYJKoZIhvcNAQcCo...ggg1BBIINPXsidG9rZ API同时支持使用AK/SK认证,AK/SK认证使用SDK对请求进行签名,签名过程会自动往请求中添加Authorization(签名认证信息)和X-Sdk-Date(请求发送的时间)请求头。 AK/SK认证的详细说明请参见认证鉴权的“AK/SK认证”。 对于获取用户Token接口,由于不需要认证,所以只添加“Content-Type”即可,添加消息头后的请求如下所示。 1 2 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json
  • 功能介绍 删除ldap配置。LDAP(Lightweight Directory Access Protocol),中文名称轻量级目录访问协议,是对目录服务器(Directory Server)进行访问、控制的一种标准协议。LDAP服务器可以集中式地管理用户和群组的归属关系,通过绑定LDAP服务器,当一个用户访问您的文件系统的文件时,SFS Turbo将会访问您的LDAP服务器以进行用户身份验证,并且获取用户和群组的归属关系,从而进行Linux标准的文件UGO权限的检查。要使用此功能,首先您需要搭建好LDAP服务器(当前SFS Turbo仅支持LDAP v3协议),常见提供LDAP协议访问的目录服务器实现有OpenLdap(Linux),Active Directory(Windows)等,不同目录服务器的实现细节有所差别,绑定时需要指定对应的Schema(Schema配置错误将会导致SFS Turbo无法正确获取用户以及群组信息,可能导致无权限访问文件系统内文件),当前SFS Turbo支持的Schema有: RFC2307(Openldap通常选择此Schema) MS-AD-BIS(Active Directory通常选择此Schema,支持RFC2307bis,支持嵌套的群组) SFS Turbo还支持配置主备LDAP服务器,当您的一台LDAP服务器故障无法访问后,SFS Turbo将会自动切换到备LDAP服务器访问,以免影响您的业务。同时,若您还选择将allow_local_user配置为Yes(默认为No),那么当您的LDAP服务器全部故障无法访问时,SFS Turbo将会使用您的本地用户以及群组信息,而非LDAP服务器中配置的信息进行身份验证和UGO权限检查,以最大程度减少故障影响面。
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 jobId String ldap异步任务的id。可通过查询job的状态详情接口查询job的执行状态。 状态码: 400 表4 响应Body参数 参数 参数类型 描述 errCode String 错误码 最小长度:8 最大长度:36 errMsg String 错误描述 最小长度:2 最大长度:512 状态码: 500 表5 响应Body参数 参数 参数类型 描述 errCode String 错误码 最小长度:8 最大长度:36 errMsg String 错误描述 最小长度:2 最大长度:512
  • 响应示例 状态码: 200 删除中 { "job_Id" : "72362dxxxxa04d419dbd5e6d9fe5xxxx" } 状态码: 400 错误响应 { "errCode" : "SFS.TURBO.0001", "errMsg" : "Invalid rule id" } 状态码: 500 错误响应 { "errCode" : "SFS.TURBO.0005", "errMsg" : "Internal server error" }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 path String 合法的已存在的目录的全路径 capacity Integer 目录的容量大小,单位:MB inode Integer 目录的inode数量限制 used_capacity Integer 目录已使用的容量大小,单位:MB。仅SFSTurbo 20MB/s/TiB、40MB/s/TiB、125MB/s/TiB、250MB/s/TiB、500MB/s/TiB、1000MB/s/TiB返回该字段。数据可能有延迟。 used_inode Integer 目录的已使用的inode数量。仅SFSTurbo 20MB/s/TiB、40MB/s/TiB、125MB/s/TiB、250MB/s/TiB、500MB/s/TiB、1000MB/s/TiB返回该字段。数据可能有延迟。 状态码: 400 表5 响应Body参数 参数 参数类型 描述 errCode String 错误码 最小长度:8 最大长度:36 errMsg String 错误描述 最小长度:2 最大长度:512 状态码: 500 表6 响应Body参数 参数 参数类型 描述 errCode String 错误码 最小长度:8 最大长度:36 errMsg String 错误描述 最小长度:2 最大长度:512
  • 请求示例 文件系统ID为"77ba6f4b-6365-4895-8dda-bc7142af4ddw",目录的全路径是“/data/test”,查询该目录的quota值 GET HTTPS://{endpoint}/v1/{project_id}/sfs-turbo/shares/77ba6f4b-6365-4895-8dda-bc7142af4ddw/fs/dir-quota?path=/data/test
  • 响应示例 状态码: 200 查询目录的配额信息成功 { "path" : "/data/test", "capacity" : 1024, "inode" : 100000 } 状态码: 400 错误响应 { "errCode" : "SFS.TURBO.0102", "errMsg" : "Path is not directory" } 状态码: 500 错误响应 { "errCode" : "SFS.TURBO.0005", "errMsg" : "Internal server error" }
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 rules Array of OnePermRuleResponseInfo objects 权限信息 表4 OnePermRuleResponseInfo 参数 参数类型 描述 id String 权限规格的id ip_cidr String 授权对象的IP地址或网段 rw_type String 授权对象的读写权限 rw:默认选项,以读写的方式共享 ro:以只读的方式共享 none: 没有权限 user_type String 授权对象的系统用户对文件系统的访问权限。取值如下: no_root_squash:客户端使用的是root用户时,映射到NFS服务器的用户依然为root用户。 root_squash:客户端使用的是root用户时,映射到NFS服务器的用户为NFS的匿名用户(nfsnobody)。 all_squash:默认选项。所有访问NFS服务器的客户端的用户都映射为匿名用户。' 状态码: 500 表5 响应Body参数 参数 参数类型 描述 errCode String 错误码 最小长度:8 最大长度:36 errMsg String 错误描述 最小长度:2 最大长度:512
  • 响应示例 状态码: 200 查询成功 { "rules" : [ { "id" : "1131ed520xxxxxxebedb6e57xxxxxxxx", "ip_cidr" : "192.168.0.0/16", "rw_type" : "rw", "user_type" : "no_root_squash" }, { "id" : "1231ed520xxxxxxebedb6e57xxxxxxxx", "ip_cidr" : "192.32.0.0/16", "rw_type" : "rw", "user_type" : "no_root_squash" } ] } 状态码: 500 错误响应 { "errCode" : "SFS.TURBO.0005", "errMsg" : "Internal server error" }
  • Java中Content-MD5的计算方法示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 import java.security.MessageDigest; import sun.misc.BASE64Encoder; import java.io.UnsupportedEncodingException; import java.security.NoSuchAlgorithmException; public class Md5{ public static void main(String[] args) { try { String exampleString = "blog"; MessageDigest messageDigest = MessageDigest.getInstance("MD5"); BASE64Encoder encoder = new BASE64Encoder(); String contentMd5 = encoder.encode(messageDigest.digest(exampleString.getBytes("utf-8"))); System.out.println("Content-MD5:" + contentMd5); } catch (NoSuchAlgorithmException | UnsupportedEncodingException e) { e.printStackTrace(); } } }
  • 请求示例 ID为"77ba6f4b-6365-4895-8dda-bc7142af4dde"的文件系统,获取DU任务列表,从任务ID为"11abef677ac40f46644d1d5cfc2424a4"起,获取50个任务 GET HTTPS://{endpoint}/v1/{project_id}/sfs-turbo/shares/77ba6f4b-6365-4895-8dda-bc7142af4dde/fs/dir-usage/tasks?marker=11abef677ac40f46644d1d5cfc2424a4&limit=50
  • 响应示例 状态码: 200 成功 { "tasks" : [ { "task_id" : "2b31ed520xxxxxxebedb6e57xxxxxxxx", "status" : "SUCCESS", "dir_usage" : { "path" : "/path", "used_capacity" : 0, "file_count" : { "dir" : 0, "regular" : 0, "pipe" : 0, "char" : 0, "block" : 0, "socket" : 0, "symlink" : 0 }, "message" : "" }, "begin_time" : "2023-03-01 11:46:01", "end_time" : "2023-03-01 11:46:01" } ] } 状态码: 400 错误响应 { "errCode" : "SFS.TURBO.0123", "errMsg" : "feature invalid" } 状态码: 404 错误响应 { "errCode" : "SFS.TURBO.0124", "errMsg" : "task_id not found" } 状态码: 500 错误响应 { "errCode" : "SFS.TURBO.0005", "errMsg" : "Internal server error" }
  • URI GET /v1/{project_id}/sfs-turbo/shares/{share_id}/fs/{feature}/tasks 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目id share_id 是 String 文件系统id feature 是 String 任务类型。例,DU任务取值为dir-usage 表2 Query参数 参数 是否必选 参数类型 描述 marker 否 String marker,取值为task_id limit 否 Integer limit, 取值为正整数. 默认为20,最大值为100
  • 接口约束 在2023年8月1号之后创建的文件系统支持该API操作。后端有5min的缓存时间,查询的数据可能有延迟。API请求路径的feature仅支持以下取值: dir-usage 该接口仅适用于以下类型: 20MB/s/TiB 40MB/s/TiB 125MB/s/TiB 250MB/s/TiB 500MB/s/TiB 1000MB/s/TiB HPC缓存型文件系统 标准型、标准型-增强版、性能型、性能型-增强版类型的SFS Turbo文件系统,请使用“查询目录资源使用情况”接口。
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 tasks Array of OneFsTaskResp objects 任务列表 数组长度:0 - 100 表5 OneFsTaskResp 参数 参数类型 描述 task_id String 任务ID status String 任务状态, SUCCESS表示成功,DOING表示正在执行,FAIL表示失败 枚举值: SUCCESS DOING FAIL dir_usage FsDuInfo object 目录资源使用情况(包含子目录) begin_time String 任务开始时间,UTC时间,例如:2006-01-02 15:04:05' end_time String 任务结束时间,UTC时间,例如:2006-01-02 15:04:06' 表6 FsDuInfo 参数 参数类型 描述 path String 文件系统内合法的目录全路径 最小长度:0 最大长度:4096 used_capacity Long 占用容量,单位:byte 最小值:0 file_count FsFileCount object 该目录下所有文件数目 message String 错误信息 表7 FsFileCount 参数 参数类型 描述 dir Long 目录数目 最小值:0 regular Long 普通文件数目 最小值:0 pipe Long 管道文件数目 最小值:0 char Long 字符设备数目 最小值:0 block Long 块设备数目 最小值:0 socket Long 套接字数目 最小值:0 symlink Long 符号链接数目 最小值:0 状态码: 400 表8 响应Body参数 参数 参数类型 描述 errCode String 错误码 最小长度:8 最大长度:36 errMsg String 错误描述 最小长度:2 最大长度:512 状态码: 404 表9 响应Body参数 参数 参数类型 描述 errCode String 错误码 最小长度:8 最大长度:36 errMsg String 错误描述 最小长度:2 最大长度:512 状态码: 500 表10 响应Body参数 参数 参数类型 描述 errCode String 错误码 最小长度:8 最大长度:36 errMsg String 错误描述 最小长度:2 最大长度:512
  • 接口约束 在2023年8月1号之后创建的文件系统支持该API操作。如果存在10个正在执行的任务,则不允许创建新任务。该接口并发请求数过大可能会影响文件系统性能,建议同时提交的查询请求不要超过 4 个。查询超大目录耗时较久,请不要重复提交。API请求路径的feature仅支持以下取值: dir-usage 该接口仅适用于以下类型: 20MB/s/TiB 40MB/s/TiB 125MB/s/TiB 250MB/s/TiB 500MB/s/TiB 1000MB/s/TiB HPC缓存型文件系统 标准型、标准型-增强版、性能型、性能型-增强版类型的SFS Turbo文件系统,请使用“查询目录资源使用情况”接口。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 账号的token Content-Type 是 String MIME类型, application/json 表3 请求Body参数 参数 是否必选 参数类型 描述 path 是 String 文件系统内合法的目录全路径。单层目录长度不允许超过255,全路径长度不允许超过4096。 最小长度:0 最大长度:4096
  • 响应示例 状态码: 202 Accepted { "task_id" : "d651ea2b-2b20-4c6d-8bbf-2adcec18dac9" } 状态码: 400 错误响应 { "errCode" : "SFS.TURBO.0123", "errMsg" : "feature invalid" } 状态码: 500 错误响应 { "errCode" : "SFS.TURBO.0005", "errMsg" : "internal server error" }
  • 响应参数 状态码: 202 表4 响应Body参数 参数 参数类型 描述 task_id String 任务ID 状态码: 400 表5 响应Body参数 参数 参数类型 描述 errCode String 错误码 最小长度:8 最大长度:36 errMsg String 错误描述 最小长度:2 最大长度:512 状态码: 500 表6 响应Body参数 参数 参数类型 描述 errCode String 错误码 最小长度:8 最大长度:36 errMsg String 错误描述 最小长度:2 最大长度:512
  • 接口约束 在2023年8月1号之后创建的文件系统支持该API操作。API请求路径的feature仅支持以下取值: dir-usage 该接口仅适用于以下类型: 20MB/s/TiB 40MB/s/TiB 125MB/s/TiB 250MB/s/TiB 500MB/s/TiB 1000MB/s/TiB HPC缓存型文件系统 标准型、标准型-增强版、性能型、性能型-增强版类型的SFS Turbo文件系统,请使用“查询目录资源使用情况”接口。
  • 响应参数 状态码: 400 表3 响应Body参数 参数 参数类型 描述 errCode String 错误码 最小长度:8 最大长度:36 errMsg String 错误描述 最小长度:2 最大长度:512 状态码: 404 表4 响应Body参数 参数 参数类型 描述 errCode String 错误码 最小长度:8 最大长度:36 errMsg String 错误描述 最小长度:2 最大长度:512 状态码: 500 表5 响应Body参数 参数 参数类型 描述 errCode String 错误码 最小长度:8 最大长度:36 errMsg String 错误描述 最小长度:2 最大长度:512
  • 响应示例 状态码: 400 错误响应 { "errCode" : "SFS.TURBO.0123", "errMsg" : "feature invalid" } 状态码: 404 错误响应 { "errCode" : "SFS.TURBO.0124", "errMsg" : "task_id not found" } 状态码: 500 错误响应 { "errCode" : "SFS.TURBO.0005", "errMsg" : "Internal server error" }
  • URI DELETE /v1/{project_id}/sfs-turbo/shares/{share_id}/fs/{feature}/tasks/{task_id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目id share_id 是 String 文件系统id feature 是 String 任务类型。例,DU任务取值为dir-usage task_id 是 String 任务ID
  • 请求示例 ID为"77ba6f4b-6365-4895-8dda-bc7142af4dde"的文件系统,删除任务ID为"11abef677ac40f46644d1d5cfc2424a4" 的DU任务 DELETE HTTPS://{endpoint}/v1/{project_id}/sfs-turbo/shares/77ba6f4b-6365-4895-8dda-bc7142af4dde/fs/dir-usage/tasks/11abef677ac40f46644d1d5cfc2424a4
  • 请求示例 { "rules" : [ { "ip_cidr" : "192.168.0.0/16", "rw_type" : "rw", "user_type" : "no_root_squash" }, { "ip_cidr" : "192.32.0.0/16", "rw_type" : "rw", "user_type" : "no_root_squash" } ] }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 账号的token Content-Type 是 String MIME类型 表3 请求Body参数 参数 是否必选 参数类型 描述 rules 是 Array of OnePermRuleRequestInfo objects 权限信息,一次最多允许添加5条规则 表4 OnePermRuleRequestInfo 参数 是否必选 参数类型 描述 ip_cidr 否 String 授权对象的IP地址或网段,设置后不支持修改 rw_type 否 String 授权对象的读写权限 rw:默认选项,以读写的方式共享 ro:以只读的方式共享 none: 没有权限 user_type 否 String 授权对象的系统用户对文件系统的访问权限。取值如下: no_root_squash:默认选项。客户端使用包括root用户在内的任何用户,NFS服务器都保持客户端使用的用户,不做映射。 root_squash:客户端使用的是root用户时,映射到NFS服务器的用户为NFS的匿名用户(nfsnobody)。 all_squash:所有访问NFS服务器的客户端的用户都映射为匿名用户。
共100000条