所有快照操作都可限定于给定的池或项目。快照操作也可限定于文件系统或 LUN 级别。
所有基于项目的快照操作的 URI 都以 /api/storage/v1/pools/{pool}/projects/{project} 开头
所有基于文件系统的快照操作的 URI 都以 /api/storage/v1/pools/{pool}/projects/{project}/filesystems/{filesystem} 开头
所有基于 LUN 的快照操作的 URI 都以 /api/storage/v1/pools/{pool}/projects/{project}/luns/{lun} 开头
| 
 | 
列出设备上的可用快照。列表可包含项目快照、文件系统快照或 LUN 快照,具体取决于请求 URI。
| 
 | 
请求示例:
GET /api/storage/v1/pools/gold/projects/default/snapshots Accept: application/json
响应示例:
HTTP/1.1 200 OK
Content-Type: application/json
{
    "snapshots": [{
        "id": "3fbbcccf-d058-4502-8844-6feeffdf4cb5",
        "display_name": "snap-001",
        “display_description": "Daily backup",
        "volume_id": "521752a6-acf6-4b2d-bc7a-119f9148cd8c",
        "status": "available",
        "size": 30,
        "created_at": "2012-02-29T03:50:07Z"
    }, {
        "id": "e479997c-650b-40a4-9dfe-77655818b0d2",
        "display_name": "snap-002",
        "display_description": "Weekly backup",
        "volume_id": "76b8950a-8594-4e5b-8dce-0dfa9c696358",
        "status": "available",
        "size": 25,
        "created_at": "2012-03-19T01:52:47Z"
    }]
}
            
            
                查看有关单个快照的所有信息。成功后返回 HTTP 状态 200 (OK)。
请求示例:
GET /api/storage/v1/pools/gold/projects/default/snapshots/snap-001 Accept: application/json
响应示例:
HTTP/1.1 200 OK
Content-Type: application/json
{
    "snapshot": {
        "id": "3fbbcccf-d058-4502-8844-6feeffdf4cb5",
        "display_name": "snap-001",
        "display_description": "Daily backup",
        "volume_id": "521752a6-acf6-4b2d-bc7a-119f9148cd8c",
        "status": "available",
        "size": 30,
        "created_at": "2012-02-29T03:50:07Z"
    }
}
            
            
                创建快照命令为项目、文件系统或 LUN 创建快照。
创建项目快照-POST /pools/{pool}/projects/{project}/snapshots
创建文件系统快照-POST /pools/{pool}/projects/{project}/filesystems/{share}/snapshots
创建卷快照-POST /pools/{pool}/projects/{project}/luns/{lun}/snapshots
请求示例:
POST /api/storage/v1/pools/gold/projects/default/snapshots
Content-Type: application/json
{"name": "initial-backup"}
                响应示例:
HTTP/1.1 201 Created
Content-Type: application/json
Location: /pools/gold/projects/default/
snapshot/initial-backup
{
    "snapshot": {
        "name": "initial-backup",
        "numclones": 0,
        "creation": "20130610T21:00:49",
        "collection": "local",
        "project": "default",
        "canonical_name": "gold/local/default@initial-backup",
        "usage": {
            "unique": 0.0,
            "loading": false,
            "data": 145408.0
        },
        "type": "snapshot",
        "id": "a26abd24-e22b-62b2-0000-000000000000",
        "pool": "gold"
    }
}
            
            
                重命名现有快照。
请求 URI-"Snapshot",当前快照名称
请求正文-JSON 对象,其名称参数包含新快照名称
请求示例:
PUT /api/storage/v1/pools/gold/projects/default/snapshots/initial-snapshot
Content-Type: application/json
Accept: application/json
{“name”:”old-snapshot”}
                响应示例:
HTTP/1.1 202 Accepted Content-Type: application/json Location: /pools/gold/projects/default/snapshot/initial-backup
根据现有快照创建新的文件系统或 LUN。
请求 URI 克隆文件系统:
PUT /pools/{pool}/projects/{project}/filesystems/{share}/snapshots/{snap}/clone
                克隆卷:
PUT  /pools/{pool}/projects/{project}/luns/{lun}/snapshots/{snapshot}/clone
                | 
 | 
请求正文包含带以下属性的 JSON 对象。
| 
 | 
请求示例:
PUT /api/storage/v1/pools/gold/projects/default/filesystems/fs01/
    snapshots/snap01/clone
{"project":"rest", "share":"snap01clone01", "compression": "gzip-9"}
                响应示例:
HTTP/1.1 201 Created
Content-Length: 2035
X-Zfssa-Storage-Api: 1.0
Location: /api/storage/v1/pools/gold/projects/rest/filesystem/snap01clone01
Content-Type: application/json; charset=utf-8
{
    "filesystem": {
        "origin": {
            "project": "default",
            "share": "fs01",
            "snapshot": "snap01",
            "pool": "gold",
            "collection": "local"
        },
        "href": "/api/storage/v1/pools/gold/projects/rest/filesystems/snap01clone01",
        "mountpoint": "/export/snap01clone01",
        "compression": "gzip-9",
        "source": {
            "compression": "local",
            ...
        },
        ...
       "canonical_name": "gold/local/rest/snap01clone01"
   }
} 
            
            
                回滚快照会导致源文件系统或 LUN 被修改回拍摄快照时的状态。成功响应后会返回 HTTP 状态 202 (Accepted) 以及快照属性(使用 JSON 格式)。
回滚文件系统快照:
PUT /pools/{pool}/projects/{project}/filesystems/{share}/snapshots/{snap}/rollback
                回滚 LUN 快照:
PUT  /pools/{pool}/projects/{project}/luns/{lun}/snapshots/{snapshot}/rollback
                | 
 | 
请求示例:
PUT /api/storage/v1/pools/gold/projects/default/filesystems/fs-01
    /snapshots/initial-backup/rollback
                响应示例:
HTTP/1.1 202 Accepted
Location: /pools/gold/projects/default/filesystems/fs-01/snapshot/fs-01-initial-clone
Content-Type: application/json
{
    "snapshot": {
        "name": "fs-01-initial-clone",
        "numclones": 0,
        "creation": "20130610T21:00:49",
        "filesystem": "fs-01",
        "collection": "local",
        "project": "default",
        "canonical_name": "gold/local/default/
               fs-01@fs-01-initial-clone",
        "usage": {
            "unique": 0.0,
            "loading": false,
            "data": 31744.0
        },
        "type": "snapshot",
        "id": "5c9bda07-21c1-2238-0000-000000000000",
        "pool": "gold"
    }
}
            
            
                删除快照命令可用于从系统中删除项目快照、文件系统快照或 LUN 快照。
删除带给定快照的单个快照-DELETE /snapshots/{snapshot_id}
删除使用给定池名称、项目名称和快照名称的项目快照-DELETE /pools/{pool}/projects/{project}/snapshots/{snapshot_name}
删除使用给定池名称、项目名称、文件系统名称和快照名称的文件系统快照-DELETE /pools/{pool}/projects/{project}/filesystems/{share}/snapshots/{snapshot_name}
删除使用给定池名称、项目名称、文件系统名称和快照名称的文件系统 LUN-DELETE /pools/{pool}/projects/{project}/luns/{lun}/snapshots/{snapshot_name}
请求示例:
PUT /pools/gold/projects/default/filesystems/fs-01/
    snapshots/initial-backup HTTP/1.1
                成功删除后将返回 HTTP 状态 204 (not Content)。
HTTP/1.1 204 No-Content
列出文件系统或卷的相关项。
| 
 | 
| 
 | 
请求示例:
GET /apistorage/v1/pools/gold/projects/default/filesystems/fs01/
    snapshots/snap01/dependents
Accept: application/json
                响应示例:
HTTP/1.1 200 OK
X-Zfssa-Storage-Api: 1.0
Content-Type: application/json; charset=utf-8
X-Zfssa-Api-Version: 1.0
{
    "dependents": [
        {
            "project": "rest",
            "href": "/api/storage/v1/pools/gold/projects/rest/filesystems/snap01clone01",
            "share": "snap01clone01"
        },
        {
            "project": "rest",
            "href": "/api/storage/v1/pools/gold/projects/rest/filesystems/snap01clone02",
            "share": "snap01clone02"
        },
        {
            "project": "rest",
            "href": "/api/storage/v1/pools/gold/projects/rest/filesystems/snap01clone03",
            "share": "snap01clone03"
        }
    ]
}