
[英]AWS CLI - is there a way to extract tar.gz from S3 to home without storing the tar.gz?
[英]Extract huge tar.gz archives from S3 without copying archives to a local system
我正在寻找一种方法来提取巨大的数据集(18 TB+ 在这里找到https://github.com/cvdfoundation/open-images-dataset#download-images-with-bounding-boxes-annotations )考虑到这一点我需要这个过程要快(即我不想花两倍的时间来第一次复制然后提取文件)而且我不希望档案占用额外的空间,甚至一个 20 gb+ 档案。
关于如何实现这一目标的任何想法?
如果您可以将 pipe 的数据直接放入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
现在唯一缺少的部分是如何将数据和 pipe 下载到 tar 中。 假设您可以使用wget
访问 URL ,您可以让它将数据发送到标准输出。 所以你最终得到了这个
wget -qO- https://youtdata | tar xzvf -
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.