此 API 用于删除(注销)快照存储仓库。
API #
DELETE /_snapshot/{repository}
API 的作用 #
从集群中注销指定的快照存储仓库。
重要说明:
- 此操作只注销仓库配置,不会删除存储在仓库中的实际数据
- 仓库中的快照文件仍然保留在存储系统中
- 如果仓库中仍有快照引用,操作可能失败
API 的参数 #
路由参数 #
| 参数 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
repository | string | 必需 | 要删除的仓库名称 支持通配符 * |
查询字符串参数 #
| 参数 | 类型 | 是否必需 | 默认值 | 描述 |
|---|---|---|---|---|
timeout | time | 可选 | 30s | 操作超时时间 格式: 30s, 1m, 5m 等 |
master_timeout | time | 可选 | 30s | 等待主节点响应的超时时间 格式: 30s, 1m, 5m 等 |
请求示例 #
# 删除指定仓库
DELETE /_snapshot/my-repo
# 设置超时时间
DELETE /_snapshot/my-repo?timeout=60s
# 设置主节点超时时间
DELETE /_snapshot/my-repo?master_timeout=30s&timeout=60s
# 使用通配符删除多个仓库
DELETE /_snapshot/my-repo-*
响应示例 #
成功响应 #
{
"acknowledged": true
}
错误响应 - 仓库不存在 #
{
"error": {
"root_cause": [
{
"type": "repository_missing_exception",
"reason": "[my-repo] missing"
}
],
"type": "repository_missing_exception",
"reason": "[my-repo] missing"
},
"status": 404
}
错误响应 - 仓库中仍有快照 #
{
"error": {
"root_cause": [
{
"type": "repository_exception",
"reason": "[my-repo] cannot delete repository as it still contains snapshots: [snapshot1, snapshot2]"
}
],
"type": "repository_exception",
"reason": "[my-repo] cannot delete repository as it still contains snapshots"
},
"status": 500
}
删除前的准备 #
在删除仓库前,建议执行以下步骤:
1. 查看仓库中的快照 #
GET /_snapshot/my-repo/_all
2. 删除不需要的快照 #
DELETE /_snapshot/my-repo/snapshot1
DELETE /_snapshot/my-repo/snapshot2
3. 确认仓库为空 #
GET /_snapshot/my-repo/_all
使用场景 #
- 清理配置:删除不再使用的仓库配置
- 重新配置:删除后重新创建仓库
- 环境迁移:迁移到新的存储位置
- 配置更新:完全替换仓库配置
注意事项 #
- 此 API 只支持 DELETE 方法
- 删除仓库不会删除存储在文件系统或云存储中的实际数据
- 如果仓库中仍有快照,删除会失败
- 删除后需要重新创建仓库才能使用相同的名称
- 使用通配符删除时,确保匹配范围正确
安全建议 #
- 确认快照已删除:删除仓库前确认所有快照已处理完毕
- 备份数据:删除仓库前确保重要数据已备份到其他位置
- 权限控制:限制删除仓库的操作权限
- 文档记录:记录删除操作便于审计





