我通过以下方式上传文件夹/文件:
aws s3 cp files s3://my_bucket/
aws s3 cp folder s3://my_bucket/ --recursive
有没有办法返回/回滚到以前的版本?
像git revert或类似的东西?
更新: 这是我上传了4次的测试文件。
如何到达之前的版本(将其设为"最新版本")
例如,制作这个" 2018年1月17日12:48:13"或" 2018年1月17日12:24:30" 成为"最新版本"不是在gui而是使用命令行?
答案 0 :(得分:2)
没有。但是,为了防止将来出现这种情况,您可以在存储桶上启用版本控制,甚至可以配置存储桶以防止自动覆盖和删除。
要在存储桶上启用版本控制,请访问存储桶中的“属性”选项卡并将其打开。完成此操作后,存储桶中每个项目的副本或版本将包含版本元数据,您将能够检索已上载的对象的旧版本。
启用版本控制后,您将无法将其关闭。
编辑(更新我的更新问题的答案):
您无法以这种方式对对象进行版本化。您为每个对象提供了一个唯一的Key,因此S3将其视为一个新对象。您将需要为每个对象PUTS使用相同的密钥才能正确使用版本控制。实现此功能的唯一方法是从存储桶中获取所有对象,并以编程方式在密钥中查找最新日期。
编辑2:
https://docs.aws.amazon.com/AmazonS3/latest/dev/RestoringPreviousVersions.html
要恢复以前的版本,您可以:
版本控制的价值主张之一是检索能力 以前版本的对象。这样做有两种方法:
将对象的先前版本复制到同一个存储桶复制 object成为该对象和所有对象的当前版本 版本保留。
永久删除当前版本的对象删除时 当前对象版本,实际上,您将转换以前的版本 进入该对象的当前版本。
答案 1 :(得分:2)
以下是如何完成这项工作:
如果您正在使用cli,
https://docs.aws.amazon.com/cli/latest/reference/s3api/get-object.html
获取所需版本的对象。
然后为下载的对象执行put对象。
https://docs.aws.amazon.com/cli/latest/reference/s3api/put-object.html
您的旧S3对象现在将是最新的对象。
AWS S3对象是不可变的,您只能放置和删除。重命名是具有不同名称的同一对象的GET和PUT。
希望它有所帮助。
答案 2 :(得分:1)
S3允许您为存储桶启用版本控制。如果您已启用版本控制,则应该能够找回以前的版本。如果没有,那你就不走运了。
有关详细信息,请参阅以下页面:https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html