You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何撤销OpenStack Swift中对象的过期日期设置?

在OpenStack Swift中取消对象的过期设置

如果你之前给Swift对象设置了X-Delete-At或X-Delete-After过期头,想要取消删除计划,核心是移除对应的过期元数据,具体操作分两种方式:

用Swift命令行工具操作

  1. 先确认对象当前的元数据,查看是否存在过期头:

    swift stat <容器名称> <对象名称>
    

    输出里会看到X-Delete-At(指定的删除时间戳)或X-Delete-After(距离删除的秒数)字段。

  2. 移除过期元数据:

    • 如果是X-Delete-At,执行:
      swift post <容器名称> <对象名称> -H "X-Remove-Delete-At:"
      
    • 如果是X-Delete-After,执行:
      swift post <容器名称> <对象名称> -H "X-Remove-Delete-After:"
      
  3. 再次执行swift stat命令验证,确认对应的过期头已消失,说明取消成功。

用HTTP API操作

直接发送POST请求修改对象元数据,移除过期头:

  • 针对X-Delete-At的情况:
    curl -X POST \
      -H "X-Auth-Token: <你的认证令牌>" \
      -H "X-Remove-Delete-At:" \
      https://<Swift存储节点地址>/v1/<账户ID>/<容器名称>/<对象名称>
    
  • 针对X-Delete-After的情况:
    curl -X POST \
      -H "X-Auth-Token: <你的认证令牌>" \
      -H "X-Remove-Delete-After:" \
      https://<Swift存储节点地址>/v1/<账户ID>/<容器名称>/<对象名称>
    

注意事项

  • 确保你拥有该对象的写权限(POST权限),否则操作会失败。
  • 如果对象还没被Swift的删除守护进程处理,执行上述操作后会立即取消删除计划。
  • Swift 1.8及以上版本都支持X-Remove-*系列头来移除元数据,旧版本可能需要重新上传对象覆盖,但不推荐这种方式。

内容的提问来源于stack exchange,提问作者paulorodriguez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 11:00:42