--- title: "删除快照" date: 2026-02-07 lastmod: 2026-02-07 description: "删除指定的快照" tags: ["快照", "删除", "备份"] summary: "从快照仓库中删除一个或多个快照。 API 格式 # DELETE /_snapshot/{repository}/{snapshot} API 作用 # 该 API 用于从快照仓库中删除快照: 删除快照并清理所有关联文件 保留与其他快照共享的文件 支持同时删除多个快照 API 参数 # 路径参数 # 参数 类型 是否必填 默认值 描述 {repository} String 是 - 快照仓库名称 {snapshot} String 是 - 快照名称,支持逗号分隔的多个快照 查询参数 # 参数 类型 是否必填 默认值 描述 master_timeout Time 否 30s 等待主节点连接的超时时间 请求示例 # 删除单个快照 # DELETE /_snapshot/my_backup/snapshot_1 删除多个快照 # DELETE /_snapshot/my_backup/snapshot_1,snapshot_2,snapshot_3 设置主节点超时 # DELETE /_snapshot/my_backup/snapshot_1?" --- 从快照仓库中删除一个或多个快照。 ## API 格式 ``` DELETE /_snapshot/{repository}/{snapshot} ``` ## API 作用 该 API 用于从快照仓库中删除快照: - 删除快照并清理所有关联文件 - 保留与其他快照共享的文件 - 支持同时删除多个快照 ## API 参数 ### 路径参数 | 参数 | 类型 | 是否必填 | 默认值 | 描述 | |------|------|----------|--------|------| | `{repository}` | String | **是** | - | 快照仓库名称 | | `{snapshot}` | String | **是** | - | 快照名称,支持逗号分隔的多个快照 | ### 查询参数 | 参数 | 类型 | 是否必填 | 默认值 | 描述 | |------|------|----------|--------|------| | `master_timeout` | Time | 否 | `30s` | 等待主节点连接的超时时间 | ## 请求示例 ### 删除单个快照 ``` DELETE /_snapshot/my_backup/snapshot_1 ``` ### 删除多个快照 ``` DELETE /_snapshot/my_backup/snapshot_1,snapshot_2,snapshot_3 ``` ### 设置主节点超时 ``` DELETE /_snapshot/my_backup/snapshot_1?master_timeout=5m ``` ## 响应示例 ### 成功响应 ```json { "acknowledged": true } ``` ## 响应字段说明 | 字段 | 类型 | 描述 | |------|------|------| | `acknowledged` | Boolean | 请求是否被集群确认。`true` 表示快照删除已成功启动 | ## 错误条件 API 可能在以下情况下失败: | 错误 | 描述 | |------|------| | 仓库不存在 | 指定的快照仓库不存在 | | 快照不存在 | 指定的快照不存在 | | 超时 | 等待主节点连接超时 | | 权限不足 | 没有执行此操作的权限 | | 快照正在使用 | 快照当前正在被其他操作使用 | | 仓库已关闭 | 仓库已关闭或不可用 | ## 实现细节 ### 多快照支持 API 支持通过逗号分隔快照名称同时删除多个快照: ``` DELETE /_snapshot/my_repo/snap1,snap2,snap3 ``` ### 文件清理策略 - 删除所有与快照关联的文件 - **保留共享文件**:与其他至少一个现有快照共享的文件不会被删除 ## 使用场景 1. **存储管理**:删除过期快照释放存储空间 2. **备份维护**:定期清理旧快照 3. **快照更新**:删除旧快照后创建新的完整快照 4. **错误恢复**:删除损坏或失败的快照 ## 注意事项 1. **不可恢复**:删除后快照无法恢复 2. **共享文件**:与其他快照共享的文件会被保留 3. **正在进行的快照**:正在创建中的快照无法删除 4. **存储释放**:删除后存储空间可能不会立即释放 ## 相关操作 - **POST /_snapshot/{repository}/{snapshot}**:创建快照 - **GET /_snapshot/{repository}/{snapshot}**:查询快照信息 - **GET /_snapshot/{repository}**:查询仓库信息 - **POST /_snapshot/{repository}/_cleanup**:清理仓库 ## 实现文件 - **REST 处理器**:`RestDeleteSnapshotAction.java` - **请求类**:`DeleteSnapshotRequest.java` - **响应类**:`AcknowledgedResponse.java`