Amazon web services AWS CLI-有没有一种方法可以在不存储tar.gz的情况下将tar.gz从S3提取到home?

Amazon web services AWS CLI-有没有一种方法可以在不存储tar.gz的情况下将tar.gz从S3提取到home?,amazon-web-services,amazon-s3,Amazon Web Services,Amazon S3,详细说明, 在我的AWS S3上有一个tar.gz文件,我们称之为example.tar.gz 因此,我想做的是将example.tar.gz的提取内容下载到/var/home/ 一种方法是下载tar.gz,解压缩它,然后删除tar.gz 但是,我不想在下载tar.gz文件时使用空格,我只想下载解压缩版本或只存储解压缩版本 这可能吗 谢谢 目前没有一种方法可以通过S3实现这一点 不过,您可以创建以下脚本,并在希望下载tar时运行它。只要您有IAM角色/访问密钥设置 !#/bin/bash aws

详细说明,

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

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

一种方法是下载tar.gz,解压缩它,然后删除tar.gz

但是,我不想在下载tar.gz文件时使用空格,我只想下载解压缩版本或只存储解压缩版本

这可能吗


谢谢

目前没有一种方法可以通过S3实现这一点

不过,您可以创建以下脚本,并在希望下载tar时运行它。只要您有IAM角色/访问密钥设置

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

然后只需使用
/myScript BUCKET\u NAME FILE\u LOCATION OUTPUT\u FILE

调用脚本,您需要的是以下内容:

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

这将从s3流式传输
文件.tar.gz
,并将其直接(在内存中)提取到当前目录。没有临时文件,没有额外的存储,也没有清理后,这一个命令


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

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

这将在本地创建一个tar文件,将tar文件提取到磁盘(使用diskspace=tar file+未压缩文件)然后删除tar文件,它将在当前目录中提取该文件。如果你做了“ls-al”,你应该会在那里找到提取的文件。我注意到类似的事情,但那只发生了一天,我想他们正在测试一个功能。atm我不知道他们是否会包括一个标志或者一些启用/禁用自动提取的东西。但我敢肯定它很快就会上市。我注意到,因为我每天都使用boto 3下载一个文件,而我现在只有一天遇到问题,我必须手动提取它。如果我的答案对您有效,请将其标记为“最佳答案”I.stack.imgur.com/QpogP.png