我在我的 S3 存储桶中启用了版本控制,如何使用命令行 S3 客户端(例如s3cmd )恢复已删除的文件?如何浏览不同版本的文件?到目前为止,我已经退回到免费软件 Cloudberry Windows 客户端来实现这一点。我知道我也可以使用Boto Python library,但我更喜欢一个通用的命令行工具。
问问题
5537 次
2 回答
2
s3cmd 1.5.0-rc1 目前对版本化文件的支持很少。我相信它可以进行完整的存储桶删除,包括版本化文件,但这就是它对版本化文件的支持程度。
于 2014-09-13T13:47:28.457 回答
1
使用此 AWS CLI 命令:(此处的文档):
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
,而不是中列出的版本DeleteMarkers
。
要在脚本中执行此操作,--query
和/或jq可能会有所帮助。
于 2015-11-17T13:04:51.433 回答