AWS CLI - 有没有一种方法可以从S3中将tar.gz提取到家中,而无需存储tar.gz?

问题描述:

要精心,AWS CLI - 有没有一种方法可以从S3中将tar.gz提取到家中,而无需存储tar.gz?

有我的AWS S3的tar.gz文件,姑且称之为example.tar.gz

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

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

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

这可能吗?

谢谢!

+0

如果我的回答已经为你工作,请把它标记为“最佳答案” i.stack.imgur.com/QpogP.png – mostafazh

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

你可以创建下面的脚本,只要你想下载tar就运行它。就像你有IAM角色/访问键设置一样。

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

然后只需调用使用./myScript BUCKET_NAME FILE_LOCATION OUTPUT_FILE

+1

这将在本地创建一个tar文件,tar文件解压到磁盘(使用磁盘空间= tar文件+未压缩文件),然后删除tar文件。 – mostafazh

你需要的是下面的脚本:

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

这将file.tar.gz从S3和直接提取它(活内存)到当前目录。这个命令后没有临时文件,没有额外的存储和清理。

请确保您完全按照上述方式编写命令。