是否可以通过 AWS CLI 或某些第三方工具轻松下载特定日期时间版本化存储桶的所有内容?
IE 我想检索存储桶中每个对象的版本,这些版本在给定日期被视为“最新”版本。
查看aws cli,我只看到s3api部分中公开的版本控制功能,而不是s3部分中。
据我所知,只能根据对象的版本 ID 获取以前版本的对象。
默认情况下,GET 操作返回对象的当前版本。要返回不同的版本,请使用 versionId 子资源。
有关示例和其他详细信息,请参阅http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html
为了解决您要求我理解的问题,除非您自己一直在跟踪版本 ID,否则您需要先获取版本列表以确定要获取哪些版本。
您可以使用 versions 子资源列出有关存储桶中所有对象版本的元数据。您还可以使用请求参数作为选择标准来返回有关所有对象版本的子集的元数据。
有关详细信息,请参阅http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETVersion.html。
对于与您的查询匹配的每个版本,该响应将具有如下数据:
<Version>
<Key>my-image.jpg</Key>
<VersionId>3/L4kqtJl40Nr8X8gdRQBpUMLUo</VersionId>
<IsLatest>true</IsLatest>
<LastModified>2009-10-12T17:50:30.000Z</LastModified>
<ETag>"fba9dede5f27731c9771645a39863328"</ETag>
<Size>434234</Size>
<StorageClass>STANDARD</StorageClass>
<Owner>
<ID>75aa57f09aa0c8caeab4f8c24e99d10f8e7faeebf76c078efc7c6caea54ba06a</ID>
<DisplayName>mtd@amazon.com</DisplayName>
</Owner>
</Version>
Run Code Online (Sandbox Code Playgroud)
在AWS方面cli来,这将是aws s3api get-object --version-id ...
与aws s3api list-object-versions ...
上面提到的API调用分别。
使用Duplicity,您可以通过包含参数从某个时间点进行恢复--time
。您可以参考此链接,了解 Amazon S3 服务的一些使用示例。
duplicity --time 2012-10-01T01:00:00 s3+http://backup_bucket_url /local_restore_path
Run Code Online (Sandbox Code Playgroud)