文档首页 > > API参考> SFS API说明> 文件共享> 创建共享

创建共享

分享
更新时间: 2019/08/23 15:44

功能介绍

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

说明:

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

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

URI

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

    参数

    是否必选

    参数类型

    描述

    project_id

    String

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

请求消息

  • 参数说明

    参数

    是否必选

    参数类型

    描述

    share

    Object

    详见share字段说明

  • share字段说明:

    参数

    是否必选

    参数类型

    描述

    share_proto

    String

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

    size

    Integer

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

    name

    String

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

    description

    String

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

    snapshot_id

    String

    创建共享的源快照的UUID,长度为0~36,当前不支持快照,该字段无意义。

    is_public

    Boolean

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

    share_type

    String

    共享类型的名称,共享类型用于指定分配哪些类型的存储服务,例如高性能类型(由SSD磁盘组成)、大容量类型(由SATA盘组成),当前支持一种类型的存储服务,用户不用指定本参数,后台会自动把本参数指定为系统支持的存储类型,用户若要输入系统不支持的服务类型,将导致文件服务申请失败。

    consistency_group_id

    String

    (API 微版本2.31以后支持) 共享将创建到的一致性组的UUID。当前文件服务不支持一致性组,该字段无意义,这个参数不填写。

    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”开头。

    share_network_id

    String

    共享服务所属或即将创建到的共享网络的UUID,长度为0~36,当前不支持共享网络管理,该字段无意义

  • 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
    {
       "share": {
           "share_type": null,
           "name": "test",
           "snapshot_id": null,
           "description": "test description",
           "metadata": {
               "key1": "value1",
               "key2": "value2"
           },
           "share_proto": "NFS",
           "share_network_id": null,
           "size": 1,
           "is_public": false
       }
    }
  • 请求样例(创建带数据加密功能共享):POST https://{endpoint}/v2/16e1ab15c35a457e9c2b2aa189f544e1/shares
    {
       "share": {
           "share_type": null,
           "name": "test",
           "snapshot_id": null,
           "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
    {
       "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字段说明:

    参数

    参数类型

    描述

    id

    String

    共享的UUID

    status

    String

    共享的状态,创建接口的返回值均为creating。

    links

    Array of objects

    共享链接。

    project_id

    String

    创建共享的项目的UUID

    share_proto

    String

    文件系统的共享协议,一般为NFS或CIFS.

    size

    Integer

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

    name

    String

    共享名称。

    description

    String

    共享描述。

    share_type

    String

    共享类型的名称,共享类型用于指定分配哪些类型的存储服务,例如高性能类型(由SSD磁盘组成)、大容量类型(由SATA盘组成),当前云服务只提供default类型,其他类型暂不支持。

    is_public

    Boolean

    共享的可见程度。为true时表示公共所有租户可见,为false时表示私有属主租户可见。

    volume_type

    String

    卷类型,同share_type字段。

    snapshot_id

    String

    创建共享的源快照的UUID,长度为0~36,当前不支持快照,该字段无意义。

    consistency_group_id

    String

    (API 微版本2.31以后支持) 共享将创建到的一致性组的UUID。当前文件服务不支持一致性组,该字段无意义。

    metadata

    Object

    一到多个字典形式组织的键值对,该文件共享的已使用容量,通过键值share_used,值为数字,单位为Bytes。该键值由后台自动刷新,刷新频率为30分钟一次。

    share_network_id

    String

    共享网络的UUID,当前不支持共享网络管理,该字段无意义。

    availability_zone

    String

    可用区AZ(availability zone)

    export_location

    String

    共享访问地址。API 微版本2.8以后不显示。

    export_locations

    Array of strings

    共享访问路径列表。API 微版本2.8以后不显示。

    host

    String

    共享主机名。

    created_at

    String

    共享创建的时间标签。UTC时间,格式为YYYY-MM-DDTHH:MM:SSZ

  • 响应样例
    {
        "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

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

    500 Internal Server Error

    请求未完成。服务异常。

    501 Not Implemented

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

    502 Bad Gateway

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

    503 Service Unavailable

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

    504 Gateway Timeout

    网关超时。

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区