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

如何找出两个AWS S3存储桶中仅存在于其中一个桶的文件?

如何找出两个AWS S3存储桶中仅存在于其中一个桶的文件?

我来给你分享几个实用的方法,都是日常和S3打交道时常用的,操作起来不复杂,按需选就行:

  • 方法一:用s3 sync模拟运行快速查差异
    AWS CLI的s3 sync命令本来是用来同步两个存储桶的,加上--dryrun参数后,它只会模拟同步操作,不会真的修改任何文件,同时会输出所有需要同步的文件——也就是仅在源桶存在、目标桶没有的文件。
    比如你要找s3://bucket-a有但s3://bucket-b没有的文件,直接跑这条命令:

    aws s3 sync s3://bucket-a s3://bucket-b --dryrun
    

    输出里以upload:开头的行,就是桶A独有的文件;反过来,要找桶B独有的,只要把源和目标桶调换位置:

    aws s3 sync s3://bucket-b s3://bucket-a --dryrun
    

    这个方法的好处是不用下载任何本地文件,直接在命令行就能看到结果,还会自动忽略大小和修改时间完全一致的文件,效率很高。

  • 方法二:导出文件列表后本地对比(适合留存记录)
    如果需要把差异结果保存下来,或者要处理超大规模的桶,可以先把两个桶的文件路径导出到本地文本,再用对比工具分析:

    1. 先导出两个桶的文件路径(用awk过滤掉日期、大小这些无关信息,只保留纯路径):
      # 导出桶A的文件路径列表
      aws s3 ls s3://bucket-a --recursive | awk '{print $4}' > bucket-a-files.txt
      
      # 导出桶B的文件路径列表
      aws s3 ls s3://bucket-b --recursive | awk '{print $4}' > bucket-b-files.txt
      
    2. 用本地工具对比:
      • 如果你用Linux或macOS,直接用comm命令就能快速筛选:
        # 只显示桶A独有的文件
        comm -23 <(sort bucket-a-files.txt) <(sort bucket-b-files.txt)
        
        # 只显示桶B独有的文件
        comm -13 <(sort bucket-a-files.txt) <(sort bucket-b-files.txt)
        
      • 如果你用Windows,Beyond Compare、Notepad++的对比插件这类可视化工具都能轻松搞定文本对比。
        这个方法的优势是可以留存差异记录,而且文本文件本身占用空间极小,哪怕桶里有几百万个文件也能处理。
  • 方法三:精准对比(含文件内容差异)
    要是你不仅要找路径不存在的文件,还要找路径相同但内容不一样的文件,可以结合S3 API和JSON工具来做:

    1. 导出两个桶的文件路径+ETag(ETag相当于文件的哈希值,内容不同的话ETag大概率不同):
      # 导出桶A的文件路径和ETag
      aws s3api list-objects-v2 --bucket bucket-a --query 'Contents[].{Key: Key, ETag: ETag}' --output json | jq -r '.[] | "\(.Key) \(.ETag)"' > bucket-a-hashes.txt
      
      # 导出桶B的文件路径和ETag
      aws s3api list-objects-v2 --bucket bucket-b --query 'Contents[].{Key: Key, ETag: ETag}' --output json | jq -r '.[] | "\(.Key) \(.ETag)"' > bucket-b-hashes.txt
      
    2. 再用diff或者comm对比这两个文件,就能同时找出:仅在一个桶存在的文件,以及路径相同但内容不同的文件。

小提示:运行这些命令前,确保你的AWS CLI已经配置好对应S3桶的s3:ListBucket权限;如果桶里文件量很大,导出列表可能需要几分钟,耐心等就行~

备注:内容来源于stack exchange,提问作者Franck Dernoncourt

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 10:45:29