应用S3删除规则时保留Tasks文件夹的解决方案
S3生命周期规则配置:保留Tasks文件夹仅删除其内数据
问题根源
S3里没有真实的文件夹结构,所谓“文件夹”本质是一个名为C3/TempData/Tasks/的零字节对象(手动创建文件夹时自动生成)。如果你的规则前缀设为C3/TempData/Tasks,会匹配所有以该字符串开头的对象——包括那个代表文件夹的零字节对象,所以才会连文件夹一并删除。
正确配置步骤
- 打开AWS控制台,找到目标S3存储桶,进入「生命周期规则」页面
- 新建或编辑现有规则,给规则起个直观的名称(比如
Clean-Tasks-Folder-Content) - 在「应用范围」部分:
- 选择「指定前缀」,输入**
C3/TempData/Tasks/**(重点:末尾必须添加斜杠) - 这个前缀只会匹配Tasks文件夹下的所有子对象,不会命中代表Tasks文件夹本身的
C3/TempData/Tasks/对象
- 选择「指定前缀」,输入**
- 在「操作」部分按需配置:
- 勾选「永久删除当前版本」(需要删除当前数据时开启)
- 如果存储桶启用了版本控制,可根据需求勾选「永久删除非当前版本」或「过期删除标记」
- 设置过期时间:若需立即删除可设为0天,也可根据业务需求设置具体天数
- 确认配置无误后保存规则
已删除文件夹的恢复方法
如果Tasks文件夹已经被删除,直接在S3存储桶中手动重建:
- 导航到
C3/TempData/路径,点击「创建文件夹」,输入Tasks即可生成对应的零字节C3/TempData/Tasks/对象,也就是你需要的“文件夹”
验证方式
上传一个测试文件到C3/TempData/Tasks/路径下,等待规则生效(或手动触发生命周期规则测试),检查测试文件被删除,但C3/TempData/Tasks文件夹依然存在。
内容的提问来源于stack exchange,提问作者user22409845
相关产品推荐
相关产品推荐

