【问题标题】:Compare local files to s3 bucket and determine what files (fullpath) are not in the bucket将本地文件与 s3 存储桶进行比较,并确定哪些文件(完整路径)不在存储桶中
【发布时间】:2020-02-20 05:40:26
【问题描述】:

我有一个本地文件共享,它被复制到雪球并导入到 s3 存储桶(约 70TB;许多小文件) 自导入以来,用户已将内容添加到本地共享。 我试图获取所有不存在的文件的列表,然后将它们传输到存储桶。

我尝试过同步和 s3cmd 同步,但它必须遍历每个项目,我的想法是,如果我导出一个列表,然后只运行需要移动它的项目的副本,将节省大量时间。

寻求有关解决此问题的最简单,最快的方法的帮助

【问题讨论】:

  • 如果您有 大量 个文件,通过Amazon S3 Inventory 获取列表可能更容易,它可以提供存储桶内容的每日 CSV 文件。
  • 两个列表的比较容易吗?它们很可能是未排序的,并且不会具有完全相同的路径。有没有办法映射 s3 存储桶并使用 dir /s /b 之类的东西或 find "$PWD" 来生成列表?
  • 您需要编写一些代码来将来自 Amazon S3 Inventory 的 CSV 文件与本地共享的内容进行比较。但是,至少它避免了调用 AWS 来检索 S3 内容。

标签: amazon-s3 diff local


【解决方案1】:

如果您假设您的文件没有被更改,即如果文件路径是唯一标识内容的,那么您当然可以采用这种方式。此外,您可以检查大小是否保持不变。

要获取 s3 存储桶中的对象列表,请使用 list-objects

aws s3api list-objects --bucket text-content --query 'Contents[].{Key: Key, Size: Size}')

【讨论】:

    猜你喜欢
    • 2018-02-14
    • 1970-01-01
    • 1970-01-01
    • 2019-08-07
    • 2017-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多