amazon-web-services - 有没有办法恢复 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
这没有恢复数据,谁能给我脚本中的任何指针或编辑可以帮助我撤消副本?
解决方案
直接来自恢复以前版本的 as 文档。
版本控制的价值主张之一是能够检索对象的先前版本。有两种方法可以做到这一点:
- 将对象的先前版本复制到同一存储桶中
复制的对象成为该对象的当前版本,并保留所有对象版本。
- 永久删除对象的当前版本
当您删除当前对象版本时,您实际上将先前版本转换为该对象的当前版本。
运行删除脚本后,您的文件的当前版本是否正确?
推荐阅读
- javascript - 从内部函数更新对象属性
- html - 单击 Selenium 中的元素 (ElementClickInterceptedException)
- r - 为图表着色的干净方法
- c++ - 在 cython 中为 cpp 类使用访问器语法
- r - 在数据框列中查找间隔的边缘并将它们用于 ggplot 中的 geom_rect xmin-xmax
- oracle - SQL 语句被忽略且缺少左括号
- django - 如何在 nginx + django + kubernetes 中提供静态内容?
- android - 我在第二个活动中创建了菜单栏。不同活动有多个选项
- python - 我需要关于 python 中的 while 循环的建议
- docker - Docker 在 gitlab-ci 中运行