如何在AWS S3桶间同步时保留Last modified属性?
保留S3桶间同步时的原始Last modified时间
默认的aws s3 sync命令在桶间同步时,会将目标桶中对象的Last modified时间设为同步操作的当前时间——这是因为它默认将对象作为新资源处理(即使是S3到S3的操作)。要保留源桶对象的原始Last modified时间,可以用以下两种方法:
方法一:使用aws s3 cp递归复制(适用于全量复制)
直接使用cp命令配合递归和元数据复制参数,执行S3服务器端复制,高效保留原始时间戳:
aws s3 cp s3://SOURCE/ s3://DESTINATION/ --recursive --metadata-directive COPY
--recursive:遍历源桶中的所有对象进行复制--metadata-directive COPY:指示S3复制源对象的全部元数据(包括原始Last modified时间),无需将数据下载到本地再上传,性能更优
方法二:使用aws s3 sync进行增量同步(保留时间戳)
如果需要增量同步(仅复制新增或修改的对象),可以给sync命令添加两个关键参数:
aws s3 sync s3://SOURCE s3://DESTINATION --metadata-directive COPY --exact-timestamps
--metadata-directive COPY:确保复制时保留源对象的原始元数据和Last modified时间--exact-timestamps:让sync严格对比源和目标对象的时间戳,只有当两者不一致时才触发复制,避免无意义的重复操作
内容的提问来源于stack exchange,提问作者Michael D
相关产品推荐
相关产品推荐

