如何下载数百万个S3文件并动态压缩它们



我有一个S3存储桶,里面有数百万个文件,我想下载所有这些文件。由于我没有足够的存储空间,我想下载它们,动态压缩它们,然后再保存。我该怎么做?

为了说明我的意思:

aws s3 cp --recursive s3://bucket | gzip > file

如果您想将它们全部压缩到一个文件中,正如您的问题所表明的那样,您可以在CLI命令的末尾添加一个-,使其写入StdOut:

aws s3 cp --recursive s3://bucket - | gzip > file

如果你想将它们压缩为单独的文件,那么你需要首先获得所有文件的列表,然后迭代它们并一次下载/压缩一个。

但你可能会发现,在同一个区域中启动一个公共EC2实例既快又便宜,因为它有足够的磁盘空间来容纳未压缩的文件,一次下载所有文件,并在那里压缩它们(从S3到EC2的数据是免费的,只要它不经过NAT或跨区域(。然后,您可以从S3下载压缩文件并关闭实例。

最新更新