You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何下载特定时间点状态下的版本化AWS S3存储桶?

下载AWS S3存储桶特定时间点的完整状态

因为你已经开启了S3存储桶版本控制,只要目标时间在生命周期规则的保留期内,完全可以获取到该时间点的完整存储桶状态,下面是几种实用的实现方式:

1. AWS CLI 手动筛选+批量下载

这是最原生的方案,分两步操作:

第一步:筛选目标时间点的所有对象版本

用aws s3api列出存储桶中所有在目标时间前最后修改的对象版本,输出到JSON文件:

aws s3api list-object-versions --bucket <你的存储桶名> --query 'Versions[?LastModified <= `2024-05-01T00:00:00Z`] | sort_by(@, &Key) | group_by(&Key, max_by(&LastModified))' > target-versions.json

替换<你的存储桶名>和2024-05-01T00:00:00Z为你实际的桶名和目标时间(UTC格式)。

第二步:批量下载

用Shell脚本配合jq解析JSON,逐个下载对应版本的对象:

cat target-versions.json | jq -r '.[] | "\(.Key) \(.VersionId)"' | while read key version; do
  aws s3 cp s3://<你的存储桶名>/"$key" ./本地备份目录/"$key" --version-id "$version"
done

注意提前安装jq工具,用来处理JSON格式的输出。

2. 用TrueNAS自带的恢复功能(适配你的场景)

既然你是通过TrueNAS同步到S3,直接用TrueNAS的集成功能更省心:

  • 登录TrueNAS Web UI,找到你的S3备份任务
  • 进入「恢复」页面,选择你需要的时间点
  • 配置恢复目标(本地存储或其他位置),触发恢复即可
    TrueNAS会自动帮你筛选对应时间点的所有对象版本,无需手动写命令。

3. rclone 一键同步时间点状态

rclone是一款跨云存储同步工具,对S3版本控制支持很好,直接用--s3-version-at参数就能一键同步目标时间点的完整存储桶:

rclone sync s3://<你的存储桶名> ./本地备份目录 --s3-version-at 2024-05-01T00:00:00Z

这个命令会自动识别目标时间点每个对象的有效版本,同步到本地,操作最简单。

注意事项

  • 确保你的操作账号有s3:ListBucketVersions和s3:GetObjectVersion权限,否则无法访问历史版本
  • 生命周期规则只会清理保留期外的版本,只要目标时间在保留范围内,就能正常获取到对应版本
  • 如果存储桶数据量很大,建议分批次下载或者在夜间低峰期操作,避免影响性能

内容的提问来源于stack exchange,提问作者rpetti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 15:39:20