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

开启版本控制的S3桶删除文件后无法访问历史版本问题

S3版本控制中删除文件后无法通过文件名访问旧版本的问题

我的S3桶已开启版本控制,其中File 1有两个版本:

File 1. -- #version 2
File 1. -- #version 1

删除File 1后,桶内生成了删除标记,此时桶内内容为:

delete marker
File 1. -- #version 2
File 1. -- #version 1

我原本以为删除最新版本后,仅通过文件名访问File 1会获取到version 1,但实际未返回任何文件。

在开启版本控制的S3桶中,普通删除操作(不带版本ID)不会删除任何实际的文件版本,而是生成一个删除标记,这个删除标记会被视为该对象的「当前版本」。当你仅通过文件名访问对象时,S3默认返回当前版本,而删除标记本身不是实际文件,因此会返回无文件的结果,不会自动回退到旧版本。

要访问到version 1,或者让它成为可通过文件名直接访问的版本,可按以下方式操作:

  • 方式一:显式指定版本ID访问
    在请求中带上File 1的version 1对应的版本ID,直接请求该特定版本,即可获取到对应文件。
  • 方式二:让version 1成为当前版本
    1. 找到当前删除标记的版本ID,执行带该版本ID的删除操作,删除这个删除标记,此时version 2会变回当前版本;
    2. 再执行带version 2版本ID的删除操作,删除version 2,此时version 1会成为新的当前版本,之后仅通过文件名访问File 1就能获取到version 1。
  • 方式三:复制旧版本生成新的当前版本
    使用S3的复制操作,将version 1的内容复制到同一个File 1对象名(不带版本ID),这会生成一个新的版本(比如version 3),该版本会成为当前版本,此时访问文件名就能拿到和version 1内容一致的文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 13:26:04