【问题标题】:Extract huge tar.gz archives from S3 without copying archives to a local system从 S3 提取巨大的 tar.gz 档案而不将档案复制到本地系统
【发布时间】:2023-03-14 15:35:02
【问题描述】:

我正在寻找一种方法来提取巨大的数据集(18 TB+ 在这里找到https://github.com/cvdfoundation/open-images-dataset#download-images-with-bounding-boxes-annotations)考虑到这一点我需要这个过程要快(即我不想花两倍的时间进行第一次复制和然后提取文件)另外我不希望档案占用额外的空间,甚至是一个 20 GB+ 的档案。

对如何实现这一目标有任何想法吗?

【问题讨论】:

    标签: amazon-s3 gzip tar


    【解决方案1】:

    如果您可以安排将数据直接通过管道传输到tar,它可以解压缩并提取它而无需临时文件。

    这是一个例子。首先创建一个 tar 文件来玩

    $ echo abc >one
    $ echo def >two
    $ tar cvf test.tar
    $ tar cvf test.tar one two
    one
    two
    $ gzip test.tar 
    

    删除测试文件

    $ rm one two
    $ ls one two
    ls: cannot access one: No such file or directory
    ls: cannot access two: No such file or directory
    

    现在通过将压缩的 tar 文件通过管道传送到 tar 命令中来提取内容。

    $ cat test.tar.gz | tar xzvf -
    one
    two
    $ ls one two
    one  two
    

    现在唯一缺少的部分是如何下载数据并将其通过管道传输到 tar。假设您可以使用wget 访问 URL,您可以获取它以将数据发送到标准输出。所以你最终得到了这个

    wget -qO- https://youtdata | tar xzvf -
    

    【讨论】:

      猜你喜欢
      • 2017-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-02
      • 2020-02-05
      • 2013-12-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多