更新时间:2024-03-05 GMT+08:00

创建共享

功能介绍

创建文件共享。创建文件系统成功后,您还需前往弹性云服务器执行挂载操作,才能实现多个云服务器共享文件存储。挂载相关操作请参考弹性文件服务快速入门

该接口为异步接口,返回为200只是表示接口下发接收成功,后续可以通过查询共享详细信息查询共享的共享状态和共享路径,判断创建共享是否完成以及是否成功,如果共享状态变为available,或者共享路径已经生成,说明创建已经成功。

通过该接口创建共享成功后,用户还需要参考添加共享访问规则添加共享访问规则,之后才可正常使用创建的共享。

URI

  • POST /v2/{project_id}/shares
  • 参数说明

    参数

    是否必选

    参数类型

    描述

    project_id

    String

    操作用户的项目ID,获取方法请参见获取项目ID

请求消息头

该操作消息头与普通请求一样,请参见表3

请求消息

  • 参数说明

    参数

    是否必选

    参数类型

    描述

    share

    Object

    详见share字段说明

  • share字段说明:

    参数

    是否必选

    参数类型

    描述

    share_proto

    String

    文件系统共享协议,有效值为NFS(适用于linux系统)。

    size

    Integer

    共享容量,单位GB。申请的共享容量不能大于配额值,需要查看配额,请参考配额查询接口

    name

    String

    共享名称,长度为0~255,只支持英文字母、数字、中划线、下划线。

    description

    String

    共享描述信息,长度为0~255,只支持英文字母、数字、中划线、下划线。

    is_public

    Boolean

    (API 微版本2.8到2.42支持)共享的可见程度。设置为true时公共可见,设置为false时私有个人可见,默认值为false。

    availability_zone

    String

    AZ( availability zone)的名称,如果不输入AZ信息,后台会当成默认AZ处理,默认AZ中如果无存储资源,共享创建会失败。长度为0~255。

    metadata

    Object

    创建共享的metadata信息,一到多个字典形式组织的键值对组成,见metadata字段说明。

    注意:
    • 出于系统安全考虑,现未开放修改metadata字段的API接口,因此,通过metadata字段创建包含数据加密功能的共享时,请确保相应参数和值正确。
    • metadata字段中以下规则的键,除非已经明确可以被设置的(例如“#sfs_crypt_key_id”等),其他的为系统内部使用,请勿自定义设置,避免因与系统预定义键冲突导致的系统内部错误:
      • 字符串“share_used”。
      • 以字符串“#sfs”开头。
  • metadata字段说明(创建共享,同时共享具有数据加密功能)

    创建具有数据加密功能的共享时,请首先参考《数据加密服务API参考》中的“查询密钥列表”章节通过HTTPS请求获取加密密钥的密钥ID、DomainID和密钥别名,然后在metadata字段中设置如下字典形式组织的键值对,请务必确保metadata字段中的键值对正确。

    当需要创建具有数据加密功能的共享时,以下参数均为必选。如仅需要创建普通共享时,以下参数均为可选。

    值类型

    是否必选

    说明

    #sfs_crypt_key_id

    String

    加密密钥ID。

    该字段与“#sfs_crypt_domain_id”和“#sfs_crypt_alias”字段同时存在时表示启动数据加密功能。

    #sfs_crypt_domain_id

    String

    租户的Domain id。

    该字段与“#sfs_crypt_key_id”和“#sfs_crypt_alias”字段同时存在时表示启动数据加密功能。

    #sfs_crypt_alias

    String

    加密密钥别名。

    该字段与“#sfs_crypt_key_id”和“#sfs_crypt_domain_id”字段同时存在时表示启动数据加密功能。

    • 建议使用弹性文件服务的默认密钥“sfs/default”的来创建加密共享请参考《弹性文件服务用户指南》中的“文件系统加密”章节和“加密”章节获取详细信息和注意事项)。
  • 创建带企业项目ID的共享时,metadata中的键如下:

    值类型

    是否必选

    说明

    enterprise_project_id

    String

    企业项目ID。

    在租户开启企业项目功能的情况下,enterprise_project_id作为key,value为企业项目ID,给共享绑定企业项目ID。

  • 请求样例 :POST https://{endpoint}/v2/16e1ab15c35a457e9c2b2aa189f544e1/shares
    创建共享,共享协议类型为NFS,共享容量为1GB,共享的可见程度为私有个人可见。
    {
       "share": {
           "name": "test",
           "description": "test description",
           "share_proto": "NFS",
           "share_network_id": null,
           "size": 1,
           "is_public": false
       }
    }
  • 请求样例(创建带数据加密功能共享):POST https://{endpoint}/v2/16e1ab15c35a457e9c2b2aa189f544e1/shares
    创建带数据加密功能共享,共享协议类型为NFS,共享容量为1GB,共享的可见程度为私有个人可见。
    {
       "share": {
           "name": "test",
           "description": "test description",
           "metadata": {
               "#sfs_crypt_key_id": "9130c90d-73b8-4203-b790-d49f98d503df",
               "#sfs_crypt_domain_id": "3b2d9670690444c582942801ed7d457b",
               "#sfs_crypt_alias": "sfs/default"
           },
           "share_proto": "NFS",
           "share_network_id": null,
           "size": 1,
           "is_public": false
       }
    }
  • 请求样例(使用企业项目功能时,创建共享):POST https://{endpoint}/v2/16e1ab15c35a457e9c2b2aa189f544e1/shares
    创建使用企业项目功能的共享,共享协议类型为NFS,共享容量为1GB,共享的可见程度为私有个人可见。
    {
       "share": {
           "share_type": null,
           "name": "test",
           "snapshot_id": null,
           "description": "test description",
           "metadata": {
               "enterprise_project_id": "9130c90d-73b8-4203-b790-d49f98d503df"
           },
           "share_proto": "NFS",
           "share_network_id": null,
           "size": 1,
           "is_public": false
       }
    }

响应消息

  • 参数说明

    参数

    参数类型

    描述

    share

    Object

    详细参数说明请参见share字段说明

  • share字段说明:

    参数

    参数类型

    描述

    links

    Array

    共享链接。

    availability_zone

    String

    可用区AZ(availability zone)。

    share_server_id

    String

    共享服务管理的ID

    id

    String

    共享的ID。

    size

    Integer

    共享容量,单位GB。

    project_id

    String

    创建共享的项目的ID。

    metadata

    Object

    一到多个字典形式组织的键值对。其中share_used作为key,对应的value表示共享已经使用的容量,单位是Bytes;enterprise_project_id作为key,对应的value是共享所属的企业项目ID。

    status

    String

    共享的状态。

    description

    String

    共享描述。

    host

    String

    共享主机名。

    name

    String

    共享名称。

    created_at

    String

    共享创建的时间标签。

    share_proto

    String

    文件系统的共享协议。

    share_type_name

    String

    共享类型的名称,共享类型用于指定分配哪些类型的存储服务,例如高性能类型(由SSD磁盘组成)、大容量类型(由SATA盘组成)。(API 微版本2.6以后支持)。

    share_type

    String

    共享类型的ID。

    volume_type

    String

    卷类型,,与share_type含义相同。

    export_locations

    Array

    共享挂载路径信息列表,当前只支持有一个共享。当请求消息头指定的X-Openstack-Manila-Api-Version的值低于2.9,该字段存在,若为2.9到2.42之间,该消息不存在。

    export_location

    String

    共享挂载路径,当请求消息头指定的X-Openstack-Manila-Api-Version的值低于2.9,该字段存在,若为2.9到2.42之间,该消息不存在。

    is_public

    Boolean

    共享的可见程度。设置为true时公共可见,设置为false时私有个人可见,默认值为false。

  • 响应样例
    {
        "share": {
            "status": "creating",
            "project_id": "16e1ab15c35a457e9c2b2aa189f544e1",
            "name": "share_London",
            "share_type": "25747776-08e5-494f-ab40-a64b9d20d8f7",
            "availability_zone": "az1.dc1",
            "created_at": "2015-09-18T10:25:24.533287",
            "export_location": null,
            "links": [
                {
                    "href": "http://192.168.198.54:8786/v2/16e1ab15c35a457e9c2b2aa189f544e1/shares/011d21e2-fbc3-4e4a-9993-9ea223f73264",
                    "rel": "self"
                },
                {
                    "href": "http://192.168.198.54:8786/16e1ab15c35a457e9c2b2aa189f544e1/shares/011d21e2-fbc3-4e4a-9993-9ea223f73264",
                    "rel": "bookmark"
                }
            ],
            "share_network_id": null,
            "export_locations": [],
            "share_proto": "NFS",
            "host": null,
            "volume_type": "default",
            "snapshot_id": null,
            "is_public": true,
            "metadata": {
                "project": "my_app",
                "aim": "doc"
            },
            "id": "011d21e2-fbc3-4e4a-9993-9ea223f73264",
            "size": 1,
            "description": "My custom share London"
        }
    }

    客户端收到系统响应时,共享创建任务还未结束,因此,共享路径不能马上查询到,当创建任务完成后,用户可以通过共享路径信息查询接口查询出来。

状态码

  • 正常

    200

  • 异常

    状态码

    说明

    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

    由于冲突,请求无法被完成。

    413 Quota Exceeded

    用户配额不足。

    500 Internal Server Error

    请求未完成。服务异常。

    501 Not Implemented

    请求未完成。服务器不支持所请求的功能。

    502 Bad Gateway

    请求未完成。服务器从上游服务器收到一个无效的响应。

    503 Service Unavailable

    请求未完成。系统暂时异常。

    504 Gateway Timeout

    网关超时。