首页 > 解决方案 > 有没有办法恢复 AWS s3 存储桶中被覆盖的文件/文件夹

问题描述

我最近开始使用 AWS。s3 存储桶启用了版本 ID,我将文件从一个文件夹复制到另一个文件夹,这导致替换同名文件。我尝试运行以下脚本(信用:堆栈溢出)以使用版本 ID 恢复文件并按如下方式运行脚本:

sh 脚本名称 存储桶名称 文件夹名称

aws s3api list-object-versions --bucket $1 --prefix $2 --output text |
 grep "VERSION*" | while read obj
   do
       KEY=$( echo $obj| awk '{print $4}')
       VERSION_ID=$( echo $obj | awk '{print $8}')
       echo $KEY
       echo $VERSION_ID
       aws s3api delete-object --bucket $1 --key $KEY --version-id $VERSION_ID

   done

这没有恢复数据,谁能给我脚本中的任何指针或编辑可以帮助我撤消副本?

标签: amazon-web-servicesamazon-s3

解决方案


直接来自恢复以前版本的 as 文档。

版本控制的价值主张之一是能够检索对象的先前版本。有两种方法可以做到这一点:

  • 将对象的先前版本复制到同一存储桶中

复制的对象成为该对象的当前版本,并保留所有对象版本。

  • 永久删除对象的当前版本

当您删除当前对象版本时,您实际上将先前版本转换为该对象的当前版本。

运行删除脚本后,您的文件的当前版本是否正确?


推荐阅读