我在S3存储桶中启用了版本控制,如何使用命令行S3客户端恢复已删除的文件,例如s3cmd?如何浏览文件的不同版本?到目前为止,我已经向Freeware Cloudberry Windows Client退步以实现这一目标。我知道我也可以使用Boto Python library,但我更喜欢常用的命令行工具。
答案 0 :(得分:2)
s3cmd 1.5.0-rc1此时对版本化文件的支持非常少。我相信它可以执行完整的桶删除,包括版本化文件,但这是对版本化文件的支持程度。
答案 1 :(得分:1)
使用此AWS CLI命令:(docs here):
aws s3api list-object-versions --bucket mybucket
这将返回对象列表,例如:
{
"DeleteMarkers": [
...
],
"Versions": [
{
"LastModified": "2015-11-17T12:25:01.000Z",
"VersionId": "Mj1.PcWG8e.C._7LhvFU131pXJ98abIl",
"ETag": "\"b76b2b775023e60be16bc332496f8409\"",
"StorageClass": "STANDARD",
"Key": "file1.txt",
"Owner": {
"DisplayName": "aws03005",
"ID": "b09 0e41acbdf98bc34ef4781f10e4aeebb7a495b8be78da0db884af2980ed38d"
},
"IsLatest": true,
"Size": 30318
},
...
}
使用Key
(文件名)和VersionId
下载以前的版本:
aws s3api get-object --bucket mybucket --key file1.txt --version-id Mj1.PcWG8e.C._7LhvFU131pXJ98abIl foo.txt
如果您要删除已删除的文件,请注意您必须get-object
Versions
中列出的最新版本,不 {{1}中列出的版本}}
要在脚本中执行此操作,DeleteMarkers
和/或jq可能有所帮助。