有没有办法恢复AWS s3存储桶中的覆盖文件/文件夹

时间:2019-04-18 13:51:52

标签: amazon-web-services amazon-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

这没有恢复数据,有人可以在脚本中给我任何指针或编辑内容来帮助我撤消副本吗?

2 个答案:

答案 0 :(得分:0)

直接来自Restoring Previous versions上的as文档。

  

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

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

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

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

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

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

答案 1 :(得分:0)

使用S3控制台查看版本最简单。

点击文件后,您会看到“最新版本”下拉菜单。您可以从此处删除特定版本,或下载特定版本。

Show versions

例如,您可以删除旧版本“之上”的较新版本,以使旧版本成为当前版本。