详细说明,
我的AWS S3上有一个tar.gz文件,我们称之为 example.tar.gz 。
所以,我想要做的是将 example.tar.gz 的提取内容下载到 / var / home / 。
一种方法是简单地下载tar.gz,将其解压缩,然后删除tar.gz。
但是,我不想使用空间下载tar.gz文件,我只想下载提取的版本或只存储提取的版本。
这可能吗?
谢谢!
答案 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