AWS CLI - 有没有办法将tar.gz从S3提取到home而不存储tar.gz?

时间:2017-09-15 09:55:06

标签: amazon-web-services amazon-s3

详细说明,

我的AWS S3上有一个tar.gz文件,我们称之为 example.tar.gz

所以,我想要做的是将 example.tar.gz 的提取内容下载到 / var / home /

一种方法是简单地下载tar.gz,将其解压缩,然后删除tar.gz。

但是,我不想使用空间下载tar.gz文件,我只想下载提取的版本或只存储提取的版本。

这可能吗?

谢谢!

3 个答案:

答案 0 :(得分:12)

您需要的是以下内容:

aws s3 cp s3://example-bucket/file.tar.gz - | tar -xz

这将从s3 file.tar.gz并将其直接(在内存中)提取到当前目录。在这一个命令之后没有临时文件,没有额外的存储空间和清理工作。

确保完全按照上面的说法编写命令。

答案 1 :(得分:0)

目前还没有一种方法可以用S3做到这一点。

您可以创建以下脚本,只要您希望下载tar,就可以运行它。只要您设置了IAM角色/访问密钥。

!#/bin/bash
aws s3 cp s3://$1/$2 $3
tar -xvf $3
rm $3

然后使用./myScript BUCKET_NAME FILE_LOCATION OUTPUT_FILE

调用脚本

答案 2 :(得分:0)

今天我用Python Boto 3和aws cli进行了测试,我发现下载文件时会自动提取tar.gz