📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

此 API 用于删除(注销)快照存储仓库。

API #

DELETE /_snapshot/{repository}

API 的作用 #

从集群中注销指定的快照存储仓库。

重要说明

  • 此操作只注销仓库配置,不会删除存储在仓库中的实际数据
  • 仓库中的快照文件仍然保留在存储系统中
  • 如果仓库中仍有快照引用,操作可能失败

API 的参数 #

路由参数 #

参数类型是否必需描述
repositorystring必需要删除的仓库名称
支持通配符 *

查询字符串参数 #

参数类型是否必需默认值描述
timeouttime可选30s操作超时时间
格式:30s, 1m, 5m
master_timeouttime可选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

使用场景 #

  1. 清理配置:删除不再使用的仓库配置
  2. 重新配置:删除后重新创建仓库
  3. 环境迁移:迁移到新的存储位置
  4. 配置更新:完全替换仓库配置

注意事项 #

  1. 此 API 只支持 DELETE 方法
  2. 删除仓库不会删除存储在文件系统或云存储中的实际数据
  3. 如果仓库中仍有快照,删除会失败
  4. 删除后需要重新创建仓库才能使用相同的名称
  5. 使用通配符删除时,确保匹配范围正确

安全建议 #

  1. 确认快照已删除:删除仓库前确认所有快照已处理完毕
  2. 备份数据:删除仓库前确保重要数据已备份到其他位置
  3. 权限控制:限制删除仓库的操作权限
  4. 文档记录:记录删除操作便于审计

相关文档 #