假设我已为存储桶启用了 S3 版本控制:http://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html
然后,假设某人(例如初级员工)弄乱了 S3 存储桶(意外删除了一些文件等)
那么,我如何将整个版本化存储桶恢复到特定时间点?我相信,有了 S3 的 API,这应该是可能的,但我不想自己编写这样的脚本,因为担心会遗漏某些内容(我不是 AWS 专家)。
有解决这个问题的好办法吗?我使用 S3 存储桶作为我的 Rails 应用程序的图像存储,因此,基于 Ruby 的、可以用作 rake 任务的东西将是理想的选择。
答案1
您可以使用s3-pit-restore
S3 时间点还原是一个您可以用来将存储桶或存储桶子集还原到给定时间点的工具,如下所示:
s3-pit-restore --bucket my-bucket --dest my-restored-bucket --timestamp "06-17-2016 23:59:50 +2"
s3-pit-restore 实际提供的功能:
- 恢复所有时间戳小于给定时间戳的文件
- 恢复整个存储桶或存储桶前缀
- 并行下载多个文件,整体速度很快
- 自定义并行工作者数量以优化带宽使用
- 从 s3 bucket 版本或 glacier 恢复(如果已启用)