华为云用户手册

  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 url String ldap服务器的url base_dn String 数据库中的域 user_dn String 用户区别名 filter_condition String 过滤条件。保留字段,暂不支持 backup_url String ldap备节点的url schema String ldap的schema,不填写则默认为RFC2307 search_timeout Integer ldap搜索的超时时间,单位为秒。不填写则默认为3秒 allow_local_user String 访问ldap服务器失败后是否允许使用本地用户鉴权 状态码: 500 表4 响应Body参数 参数 参数类型 描述 errCode String 错误码 errMsg String 错误描述
  • 功能介绍 查询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权限检查,以最大程度减少故障影响面。
  • 权限管理接口 表8 权限管理接口 接口 说明 创建权限规则 该接口可以创建权限规则。 查询文件系统的权限规则列表 该接口可以查询文件系统的权限规则列表。 查询文件系统的某一个权限规则 该接口可以查询文件系统的某一个权限规则。 修改权限规则 该接口可以修改权限规则。 修改权限规则 该接口可以删除权限规则。 创建并绑定ldap配置 该接口可以创建并绑定ldap配置。 查询Ldap的配置 该接口可以查询Ldap的配置。 修改ldap配置 该接口可以修改ldap配置。 删除ldap配置 该接口可以删除ldap配置。
  • 目录管理接口 表7 目录管理接口 接口 说明 创建目标文件夹quota 该接口可以创建目标文件夹quota。 更新目标文件夹quota 该接口可以更新目标文件夹quota。 查询目标文件夹quota 该接口可以查询目标文件夹quota。 查询目标文件夹quota 该接口可以删除目标文件夹quota。 创建目录 该接口可以创建目录。 查询目录是否存在 该接口可以查询目录是否存在。 删除文件系统目录 该接口可以删除文件系统目录。 查询目录资源使用情况 该接口可以查询目录资源使用情况(包括子目录的资源)。
  • 存储联动管理接口 表6 存储联动管理接口 接口 说明 绑定后端存储 该接口可以为SFS Turbo 文件系统绑定后端存储。 查询后端存储列表 该接口可以查询后端存储列表。 获取后端存储详细信息 该接口可以获取后端存储详细信息。 删除后端存储 该接口可以删除后端存储。 更新后端存储属性 该接口可以更新后端存储属性。 更新后端存储自动同步策略 该接口可以更新后端存储自动同步策略。 创建数据导入导出任务 该接口可以创建数据导入导出任务。 查询数据导入导出任务详情 该接口可以查询数据导入导出任务详情。 查询数据导入导出任务列表 该接口可以查询数据导入导出任务列表。 删除数据导入导出任务 该接口可以删除数据导入导出任务。 更新文件系统 该接口可以更新文件系统冷数据淘汰时间。
  • 响应参数 状态码: 400 表4 响应Body参数 参数 参数类型 描述 errCode String 错误码 errMsg String 错误描述 状态码: 409 表5 响应Body参数 参数 参数类型 描述 errCode String 错误码 errMsg String 错误描述 状态码: 500 表6 响应Body参数 参数 参数类型 描述 errCode String 错误码 errMsg String 错误描述
  • 响应示例 状态码: 400 错误响应 { "errCode" : "SFS.TURBO.0122", "errMsg" : "invalid mode" } 状态码: 409 错误响应,目录冲突 { "errCode" : "SFS.TURBO.0114", "errMsg" : "path already exist" } 状态码: 500 错误响应 { "errCode" : "SFS.TURBO.0005", "errMsg" : "Internal server error" }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 账号的token Content-Type 是 String MIME类型 表3 请求Body参数 参数 是否必选 参数类型 描述 path 是 String 合法的的目录全路径 mode 否 Long 目录权限,默认值是755,取值范围是0到777。第一位表示目录所有者的权限,取值范围是0到7;第二位表示目录所属用户组的权限,取值范围是0到7;第三位表示其他用户的权限,取值范围是0到7。目录所有者由uid指定,目录所属用户组由gid指定,不是目录所有者且不在目录所属用户组的用户为其他用户。例如:755中第一位7代表该目录所有者对该目录具有读、写、执行权限;第二位5代表该目录所属用户组对该目录具有读、执行权限;第三位5代表其他用户对该目录具有读、执行权限。 uid 否 Long 目录所有者的用户id,默认值是0,取值范围是0到4,294,967,294(即2^32-2)。 gid 否 Long 目录所属用户组id,默认值是0,取值范围是0到4,294,967,294(即2^32-2)。
  • 请求示例 文件系统ID为"77ba6f4b-6365-4895-8dda-bc7142af4dde", 任务ID为"11abef677ac40f46644d1d5cfc2424a4",删除该任务 "DELETE HTTPS://{endpoint}/v1/{project_id}/sfs-turbo/77ba6f4b-6365-4895-8dda-bc7142af4dde/hpc-cache/task/11abef677ac40f46644d1d5cfc2424a4"
  • 响应参数 状态码: 202 表3 响应Header参数 参数 参数类型 描述 X-request-id String 请求ID 状态码: 400 表4 响应Header参数 参数 参数类型 描述 X-request-id String 请求ID 表5 响应Body参数 参数 参数类型 描述 errCode String 错误码 errMsg String 错误描述 状态码: 500 表6 响应Header参数 参数 参数类型 描述 X-request-id String 请求ID 表7 响应Body参数 参数 参数类型 描述 errCode String 错误码 errMsg String 错误描述
  • 响应参数 状态码: 200 表6 响应Header参数 参数 参数类型 描述 X-request-id String 请求ID 表7 响应Body参数 参数 参数类型 描述 target_id String 绑定关系id policy ObsDataRepositoryPolicy object 后端存储自动同步策略 表8 ObsDataRepositoryPolicy 参数 参数类型 描述 auto_export_policy AutoExportPolicy object 后端存储自动导出策略。当文件系统发生数据更新时,将自动导出到OBS桶。 表9 AutoExportPolicy 参数 参数类型 描述 events Array of strings 后端存储自动导出到OBS桶的数据更新类型。 NEW:表示新增数据,SFS Turbo联动目录下创建的文件,及之后对这些文件进行的元数据和数据修改,会被自动同步到OBS桶里。 CHANGED:表示修改数据,从OBS桶里导入到SFS Turbo联动目录下的文件,在SFS Turbo上对这些文件所进行的数据和元数据的修改,会被自动同步到OBS桶里。 DELETED:表示删除数据,在SFS Turbo联动目录下删除文件,OBS桶对应的对象也会被删除,只有被SFS Turbo写入的OBS对象才会被删除。 状态码: 404 表10 响应Body参数 参数 参数类型 描述 errCode String 错误码 errMsg String 错误描述 状态码: 500 表11 响应Body参数 参数 参数类型 描述 errCode String 错误码 errMsg String 错误描述
  • 响应示例 状态码: 200 成功 { "target_id" : "xxxxxx-xxx-xxxx-xxxxxxx", "policy" : { "auto_export_policy" : { "events" : [ "NEW", "CHANGED", "DELETED" ] } } } 状态码: 404 错误响应 { "errCode" : "SFS.TURBO.0126", "errMsg" : "target not found, not bound yet" } 状态码: 500 错误响应 { "errCode" : "SFS.TURBO.0005", "errMsg" : "internal server error" }
  • 请求示例 文件系统ID为"77ba6f4b-6365-4895-8dda-bc7142af4dde",后端target_id为"11abef677ac40f46644d1d5cfc2424a4",更新后端存储自动同步策略 PUT HTTPS://{endpoint}/v1/{project_id}/sfs-turbo/shares/77ba6f4b-6365-4895-8dda-bc7142af4dde/targets/11abef677ac40f46644d1d5cfc2424a4/policy { "policy" : { "auto_export_policy" : { "events" : [ "NEW", "CHANGED", "DELETED" ] } } }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 账号的token Content-Type 是 String MIME类型 表3 请求Body参数 参数 是否必选 参数类型 描述 policy 是 ObsDataRepositoryPolicy object 后端存储自动同步策略 表4 ObsDataRepositoryPolicy 参数 是否必选 参数类型 描述 auto_export_policy 否 AutoExportPolicy object 后端存储自动导出策略。当文件系统发生数据更新时,将自动导出到OBS桶。 表5 AutoExportPolicy 参数 是否必选 参数类型 描述 events 否 Array of strings 后端存储自动导出到OBS桶的数据更新类型。 NEW:表示新增数据,SFS Turbo联动目录下创建的文件,及之后对这些文件进行的元数据和数据修改,会被自动同步到OBS桶里。 CHANGED:表示修改数据,从OBS桶里导入到SFS Turbo联动目录下的文件,在SFS Turbo上对这些文件所进行的数据和元数据的修改,会被自动同步到OBS桶里。 DELETED:表示删除数据,在SFS Turbo联动目录下删除文件,OBS桶对应的对象也会被删除,只有被SFS Turbo写入的OBS对象才会被删除。
  • 请求示例 文件系统ID为"77ba6f4b-6365-4895-8dda-bc7142af4dde",后端target_id为"11abef677ac40f46644d1d5cfc2424a4",更新后端存储属性 PUT HTTPS://{endpoint}/v1/{project_id}/sfs-turbo/shares/77ba6f4b-6365-4895-8dda-bc7142af4dde/targets/11abef677ac40f46644d1d5cfc2424a4/attributes { "attributes" : { "file_mode" : 750, "dir_mode" : 640, "uid" : 0, "gid" : 0 } }
  • 响应参数 状态码: 200 表5 响应Header参数 参数 参数类型 描述 X-request-id String 请求ID 表6 响应Body参数 参数 参数类型 描述 target_id String 绑定关系Id attributes ObsTargetAttributes object 后端存储属性 表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)。 状态码: 404 表8 响应Body参数 参数 参数类型 描述 errCode String 错误码 errMsg String 错误描述 状态码: 500 表9 响应Body参数 参数 参数类型 描述 errCode String 错误码 errMsg String 错误描述
  • 响应示例 状态码: 200 成功 { "target_id" : "00000334-xxxx-402d-a5d4-bxxxxx87b939", "attributes" : { "file_mode" : 750, "dir_mode" : 640, "uid" : 0, "gid" : 0 } } 状态码: 404 错误响应 { "errCode" : "SFS.TURBO.0126", "errMsg" : "target not found, not bound yet" } 状态码: 500 错误响应 { "errCode" : "SFS.TURBO.0005", "errMsg" : "internal server error" }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 账号的token Content-Type 是 String MIME类型 表3 请求Body参数 参数 是否必选 参数类型 描述 attributes 是 ObsTargetAttributes object 后端存储属性 表4 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)。
  • 获取访问密钥(AK/SK) IAM 用户若希望使用AK/SK访问SFS,必须要账号为其开启“编程访问”。开启方法请参见查看或修改IAM用户信息。 在调用接口的时候,需要使用AK/SK进行签名验证。AK/SK获取步骤如下: 登录控制台。 鼠标指向界面右上角的登录用户名,在下拉列表中单击“我的凭证”。 单击“管理访问密钥”。 在左侧导航栏单击“访问密钥”。 单击“新增访问密钥”,进入“新增访问密钥”页面。 输入描述(可选),单击“确定”。 通过邮箱、手机或者虚拟MFA进行验证,输入对应的验证码。如果没有开启敏感操作保护,请跳过该步骤。 单击“立即下载”,浏览器自动下载访问密钥。 为防止访问密钥泄露,建议您将其保存到安全的位置。 父主题: 附录
  • 状态码 当您调用API时,如果遇到“APIGW”开头的错误码,请参见API网关错误码进行处理。 正常 返回值 说明 200 OK GET和PUT操作正常返回。 201 Created POST操作正常返回。 202 Accepted 请求已被接受。 204 No Content DELETE操作正常返回。 异常 返回值 说明 400 Bad Request 服务器未能处理请求。 401 Unauthorized 被请求的页面需要用户名和密码。 403 Forbidden 对被请求页面的访问被禁止。 404 Not Found 服务器无法找到被请求的页面。 405 Method Not Allowed 请求中指定的方法不被允许。 406 Not Acceptable 服务器生成的响应无法被客户端所接受。 407 Proxy Authentication Required 用户必须首先使用代理服务器进行验证,这样请求才会被处理。 408 Request Timeout 请求超出了服务器的等待时间。 409 Conflict 由于冲突,请求无法被完成。 500 Internal Server Error 请求未完成。服务异常。 501 Not Implemented 请求未完成。服务器不支持所请求的功能。 502 Bad Gateway 请求未完成。服务器从上游服务器收到一个无效的响应。 503 Service Unavailable 请求未完成。系统暂时异常。 504 Gateway Timeout 网关超时。 父主题: 附录
  • 文件系统 权限 对应API接口 授权项 依赖的授权项 IAM项目 (Project) 企业项目 (Enterprise Project) 创建文件系统 POST /v1/{project_id}/sfs-turbo/shares sfsturbo:shares:createShare 创建SFS Turbo实例时,需要vpc相关权限,包括校验vpc、子网、安全组,创建vip以及port,创建安全组规则等,需要增加授权项: "vpc:*:*" 加密实例需要在项目上配置KMS Administrator权限 专属场景,需要增加授权项: "dss:*:get", "dss:*:list", "dss:*:count" √ √ 查询所有文件系统详细信息 GET /v1/{project_id}/sfs-turbo/shares/detail sfsturbo:shares:getAllShares - √ √ 查询单个文件系统详细信息 GET /v1/{project_id}/sfs-turbo/shares/{share_id} sfsturbo:shares:getShare - √ √ 删除文件系统 DELETE /v1/{project_id}/sfs-turbo/shares/{share_id} sfsturbo:shares:deleteShare 删除SFS Turbo实例时,需要vpc相关权限,包括删除vip以及port,删除安全组规则等,需要增加授权项: "vpc:*:*" 如果是专属场景,需要增加授权项: "dss:*:get", "dss:*:list", "dss:*:count" √ √ 创建文件系统异步任务 POST /v1/{project_id}/sfs-turbo/shares/{share_id}/fs/{feature}/tasks sfsturbo:shares:createFsAsyncTask - √ √ 获取文件系统异步任务列表 GET /v1/{project_id}/sfs-turbo/shares/{share_id}/fs/{feature}/tasks sfsturbo:shares:listFsAsyncTasks - √ √ 获取文件系统异步任务详情 GET /v1/{project_id}/sfs- turbo/shares/{share_id}/fs/{feature}/tasks/{task_id} sfsturbo:shares:showFsAsyncTask - √ √ 取消/删除文件系统异步任务 DELETE /v1/{project_id}/sfs-turbo/shares/{share_id}/fs/{feature}/tasks/{task_id} sfsturbo:shares:deleteFsAsyncTask - √ √ 绑定后端存储 POST /v1/{project_id}/sfs-turbo/shares/{share_id}/targets sfsturbo:shares:createBackendTarget 用户需要额外配置OBS Adminstrator权限。 √ √ 查询后端存储列表 GET /v1/{project_id}/sfs-turbo/shares/{share_id}/targets sfsturbo:shares:listBackendTargets - √ √ 获取后端存储详细信息 GET /v1/{project_id}/sfs-turbo/shares/{share_id}/targets/{target_id} sfsturbo:shares:showBackendTargetInfo - √ √ 删除后端存储 DELETE /v1/{project_id}/sfs-turbo/shares/{share_id}/targets/{target_id} sfsturbo:shares:deleteBackendTarget - √ √ 创建数据导入导出任务 POST /v1/{project_id}/sfs-turbo/{share_id}/hpc-cache/task sfsturbo:shares:createDataRepositoryTask - √ √ 查询数据导入导出任务详情 GET /v1/{project_id}/sfs-turbo/{share_id}/hpc-cache/task/{task_id} sfsturbo:shares:getDataRepositoryTask - √ √ 查询数据导入导出任务列表 GET /v1/{project_id}/sfs-turbo/{share_id}/hpc-cache/tasks sfsturbo:shares:getAllDataRepositoryTasks - √ √
  • Console引用 权限 对应API接口 授权项 依赖的授权项 IAM项目 (Project) 企业项目 (Enterprise Project) 更改安全组 Console引用 sfsturbo:shares:shareAction 更改安全组需要安全组相关权限: vpc:securityGroups:* vpc:securityGroupRules:* √ √ 查询sfs turbo配额 Console引用 sfsturbo:shares:getQuota - √ √ 获取可用区信息 Console引用 sfsturbo:shares:getAZInfo - √ √ 获取sfs turbo规格信息 Console引用 sfsturbo:shares:getFlavors - √ √ 检查文件系统名称 Console引用 sfsturbo:shares:checkShareName - √ √
  • 支持的授权项 策略包含系统策略和自定义策略,如果系统策略不满足授权要求,管理员可以创建自定义策略,并通过给用户组授予自定义策略来进行精细的访问控制。策略支持的操作与API相对应,授权项列表说明如下: 权限:允许或拒绝某项操作。 对应API接口:自定义策略实际调用的API接口。 授权项:自定义策略中支持的Action,在自定义策略中的Action中写入授权项,可以实现授权项对应的权限功能。 依赖的授权项:部分Action存在对其他Action的依赖,需要将依赖的Action同时写入授权项,才能实现对应的权限功能。 IAM项目(Project)/企业项目(Enterprise Project):自定义策略的授权范围,包括IAM项目与企业项目。授权范围如果同时支持IAM项目和企业项目,表示此授权项对应的自定义策略,可以在IAM和企业管理两个服务中给用户组授权并生效。如果仅支持IAM项目,不支持企业项目,表示仅能在IAM中给用户组授权并生效,如果在企业管理中授权,则该自定义策略不生效。关于IAM项目与企业项目的区别,详情请参见:IAM与企业管理的区别。 “√”表示支持,“x”表示暂不支持。 高性能弹性文件服务支持的自定义策略授权项如下所示: 【示例】文件系统,包含SFS Turbo所有文件系统接口对应的授权项,如创建文件系统、查询文件系统列表、查询单个文件系统详情、修改文件系统、删除文件系统等接口。 【示例】扩容文件系统,包括SFS Turbo文件系统扩容缩容接口对应的授权项,如扩容共享和缩容共享等接口。 【示例】授权项分类,包含SFS Turbo所有文件系统接口对应的授权项,如创建文件系统、查询文件系统列表、查询单个文件系统详情、删除文件系统等接口。
  • 具体步骤 获取Token ,具体操作请参考认证鉴权 。 在Request Header中增加“X-Auth-Token”。 在Request Body中传入参数如下: { "share": { "name": "sfs-turbo-test", "share_proto": "NFS", "share_type": "STANDARD", "size": 100, "availability_zone": "az1", "vpc_id": "d651ea2b-2b20-4c6d-8bbf-2adcec18dac9", "subnet_id": "b8884abe-f47b-4917-9f6c-f64825c365db", "security_group_id": "8c4ebbd0-6edf-4aae-8353-81ce6d06e1f4" } } 发送请求“POST https://SFS Turbo的Endpoint/v1/{project_id}/sfs-turbo/shares”。 请求响应成功后,返回SFS Turbo文件系统的id和name。 若请求失败,则会返回错误码及对应的错误信息说明,详细错误码信息请参考对应API接口的异常返回值。 根据返回的文件系统id查询SFS Turbo文件系统详情,具体操作请参考查询文件系统详细信息。 查询文件系统详情返回状态status为“200”,则表示创建SFS Turbo文件系统成功。请求异常的返回值说明请参考对应API接口的异常返回值。其他的状态请参考SFS Turbo文件系统状态。 根据文件系统的id,可对SFS Turbo文件系统进行查询、删除等操作。
  • 具体示例 在已获取token的前提下,curl命令创建SFS Turbo文件系统的具体实例: curl -k -i -X POST -H "X-Auth-Token: token_value" -H "Content-Type: application/json" -d '{"share": {"name": "sfs-turbo-test", "share_proto": "NFS", "share_type": "STANDARD", "size": 100, "availability_zone": "az1", "vpc_id": "d651ea2b-2b20-4c6d-8bbf-2adcec18dac9", "subnet_id": "b8884abe-f47b-4917-9f6c-f64825c365db", "security_group_id": "8c4ebbd0-6edf-4aae-8353-81ce6d06e1f4"}}' "https://127.0.0.1:8979/v1/xxxbxbex5cfx41f0a08ay915fd79240d/sfs-turbo/shares"
  • AK/SK认证 AK/SK签名认证方式仅支持消息体大小在12MB以内,12MB以上的请求请使用Token认证。 AK/SK认证就是使用AK/SK对请求进行签名,在请求时将签名信息添加到消息头,从而通过身份认证。 AK(Access Key ID):访问密钥ID。与私有访问密钥关联的唯一标识符;访问密钥ID和私有访问密钥一起使用,对请求进行加密签名。 SK(Secret Access Key):私有访问密钥。与访问密钥ID结合使用,对请求进行加密签名,可标识发送方,并防止请求被修改。 使用AK/SK认证时,您可以基于签名算法使用AK/SK对请求进行签名,也可以使用专门的签名SDK对请求进行签名。详细的签名方法和SDK使用方法请参见API签名指南。 签名SDK只提供签名功能,与服务提供的SDK不同,使用时请注意。
  • Token认证 Token的有效期为24小时,需要使用一个Token鉴权时,可以先缓存起来,避免频繁调用。 Token在计算机系统中代表令牌(临时)的意思,拥有Token就代表拥有某种权限。Token认证就是在调用API的时候将Token加到请求消息头中,从而通过身份认证,获得操作API的权限。Token可通过调用获取用户Token接口获取。 调用本服务API需要项目级别的Token,即调用获取用户Token接口时,请求body中auth.scope的取值需要选择project,如下所示。 { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", //IAM用户名 "password": "********", //IAM用户密码 "domain": { "name": "domainname" //IAM用户所属账号名 } } } }, "scope": { "project": { "name": "xxxxxxxx" //项目名称 } } } } 获取Token后,再调用其他接口时,您需要在请求消息头中添加“X-Auth-Token”,其值即为Token。例如Token值为“ABCDEFJ....”,则调用接口时将“X-Auth-Token: ABCDEFJ....”加到请求消息头即可,如下所示。 1 2 3 POST https://iam.cn-north-1.myhuaweicloud.com/v3/auth/projects Content-Type: application/json X-Auth-Token: ABCDEFJ.... 您还可以通过这个视频教程了解如何使用Token认证:https://bbs.huaweicloud.com/videos/101333。
  • 请求消息体(可选) 该部分可选。请求消息体通常以结构化格式(如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。
  • 请求消息头 附加请求头字段,如指定的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
  • 请求方法 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
共100000条