如何回滚到 Amazon S3 存储桶中的先前版本?
How to rollback to previous version in Amazon S3 bucket?
我通过以下方式上传 folders/files:
aws s3 cp files s3://my_bucket/
aws s3 cp folder s3://my_bucket/ --recursive
有没有办法return/rollback到以前的版本?
喜欢git还原或类似的东西?
更新:
这里是我上传了4次的测试文件。
如何获得以前的版本(使其成为 "Latest version")
例如使这个 "Jan 17, 2018 12:48:13" 或 "Jan 17, 2018 12:24:30"
不是在 gui 中而是通过使用命令行成为 "Latest version"?
没有。但是,为了防止将来出现这种情况,您可以在存储桶上启用版本控制,甚至可以配置存储桶以防止自动覆盖和删除。
要在您的存储桶上启用版本控制,请访问存储桶中的“属性”选项卡并将其打开。完成此操作后,存储桶中每个项目的副本或版本将包含版本元数据,您将能够检索已上传对象的旧版本。
启用版本控制后,您将无法将其关闭。
编辑(更新我对您更新后的问题的回答):
您不能以这种方式对对象进行版本控制。您为每个对象提供了一个唯一的键,因此 S3 将其视为一个新对象。您将需要对每个对象使用相同的密钥 PUTS 才能正确使用版本控制。让它工作的唯一方法是从存储桶中获取所有对象并以编程方式在密钥中找到最新日期。
编辑 2:
https://docs.aws.amazon.com/AmazonS3/latest/dev/RestoringPreviousVersions.html
要恢复以前的版本,您可以:
One of the value propositions of versioning is the ability to retrieve
previous versions of an object. There are two approaches to doing so:
Copy a previous version of the object into the same bucket The copied
object becomes the current version of that object and all object
versions are preserved.
Permanently delete the current version of the object When you delete
the current object version, you, in effect, turn the previous version
into the current version of that object.
S3 允许您为存储桶启用版本控制。如果你有版本控制,你应该能够找到以前的版本。如果没有,那你就倒霉了。
有关详细信息,请参阅以下页面:https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html
完成方法如下:
如果您使用的是 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。
希望对您有所帮助。
对于这个问题,我找不到想要的答案。我通过转到 aws s3 控制台找到了自己,并想在这里分享。
So, the quickest way is to simply navigate to:
--AWS Console -> to s3 console -> the bucket -> the s3 object
You will see the following:
At this point you can simpyl navigate to all your object
versions by clicking at the "Versions" and pick (download or move)
whichever version of the object you are interested in
我通过以下方式上传 folders/files:
aws s3 cp files s3://my_bucket/
aws s3 cp folder s3://my_bucket/ --recursive
有没有办法return/rollback到以前的版本?
喜欢git还原或类似的东西?
更新: 这里是我上传了4次的测试文件。
如何获得以前的版本(使其成为 "Latest version")
例如使这个 "Jan 17, 2018 12:48:13" 或 "Jan 17, 2018 12:24:30"
不是在 gui 中而是通过使用命令行成为 "Latest version"?
没有。但是,为了防止将来出现这种情况,您可以在存储桶上启用版本控制,甚至可以配置存储桶以防止自动覆盖和删除。
要在您的存储桶上启用版本控制,请访问存储桶中的“属性”选项卡并将其打开。完成此操作后,存储桶中每个项目的副本或版本将包含版本元数据,您将能够检索已上传对象的旧版本。
启用版本控制后,您将无法将其关闭。
编辑(更新我对您更新后的问题的回答):
您不能以这种方式对对象进行版本控制。您为每个对象提供了一个唯一的键,因此 S3 将其视为一个新对象。您将需要对每个对象使用相同的密钥 PUTS 才能正确使用版本控制。让它工作的唯一方法是从存储桶中获取所有对象并以编程方式在密钥中找到最新日期。
编辑 2:
https://docs.aws.amazon.com/AmazonS3/latest/dev/RestoringPreviousVersions.html
要恢复以前的版本,您可以:
One of the value propositions of versioning is the ability to retrieve previous versions of an object. There are two approaches to doing so:
Copy a previous version of the object into the same bucket The copied object becomes the current version of that object and all object versions are preserved.
Permanently delete the current version of the object When you delete the current object version, you, in effect, turn the previous version into the current version of that object.
S3 允许您为存储桶启用版本控制。如果你有版本控制,你应该能够找到以前的版本。如果没有,那你就倒霉了。
有关详细信息,请参阅以下页面:https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html
完成方法如下:
如果您使用的是 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。
希望对您有所帮助。
对于这个问题,我找不到想要的答案。我通过转到 aws s3 控制台找到了自己,并想在这里分享。
So, the quickest way is to simply navigate to:
--AWS Console -> to s3 console -> the bucket -> the s3 object
You will see the following:
At this point you can simpyl navigate to all your object
versions by clicking at the "Versions" and pick (download or move)
whichever version of the object you are interested in