将版本化 S3 存储桶恢复到特定时间点

els*_*udo 19 amazon-s3 ruby-on-rails amazon-web-services

假设我为我的存储桶启用了 S3 版本控制:http : //docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html

然后,假设某人(例如,初级员工)弄乱了 S3 存储桶(意外删除了一些文件等)

然后如何将整个版本化存储桶恢复到特定时间点?我相信考虑到 S3 的 API,这应该是可能的,但我宁愿不必自己编写这样的脚本,因为害怕遗漏一些东西(我不是 AWS 专家)。

这个问题有没有好的解决方案?我使用 S3 存储桶作为我的 Rails 应用程序的图像存储,因此我可以将其用作 rake 任务的基于 Ruby 的东西将是理想的选择。

Ang*_*elo 17

您可以使用 s3-pit-restore

S3 Point in Time Restore是一种工具,您可以准确地使用它将存储桶或存储桶的子集恢复到给定的时间点,如下所示:

s3-pit-restore --bucket my-bucket --dest my-restored-bucket --timestamp "06-17-2016 23:59:50 +2"
Run Code Online (Sandbox Code Playgroud)

s3-pit-restore 实际提供的功能:

  • 恢复时间戳小于给定时间戳的所有文件
  • 恢复整个桶或桶前缀
  • 以极好的整体速度并行下载多个文件
  • 自定义并行工作器数量以优化带宽使用
  • 如果启用,从 s3 存储桶版本或冰川恢复