如何从AWS S3存储桶下载加密的.gz文件

时间:2020-04-01 17:16:00

标签: python bash amazon-web-services amazon-s3

我备份nextcloud实例,对其进行压缩和加密,然后将其存储在S3存储桶中。当我进入存储桶时,我有一个名为backup.tar.gz的文件。大。

现在,我从存储桶中下载文件,然后得到一个.tar文件,这显然使我的备份完全无用。我无法解密。如果我手动保存扩展名为.gz的文件,它仍然不会解密,但会显示tar: Error opening archive: Unrecognized archive format

当我尝试通过CLI下载文件时,它不会下载文件,而是显示usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters]

aws s3 cp s3://mybucket/myfile.tar.gz

这里也提到了问题:https://forums.aws.amazon.com/thread.jspa?threadID=250926,其中唯一的答案是“为什么不使用AWS快照备份您的EC2实例”。

我不知道为什么AWS会这样做,或者这是一个错误吗?有什么体面的方法可以按照指定的格式从存储桶中获取备份吗?

如果需要使用python脚本,我也可以这样做,但是IDK是否可以更好地工作呢?

非常感谢您的帮助!预先感谢!

我这样加密:

tar -czf - /path/to/file | openssl enc -e -aes256 -pbkdf2 -salt -out backup.tar.gz -pass pass:$ENCRYPTION_PASS

1 个答案:

答案 0 :(得分:2)

您可以使用awscli从S3下载文件,如下所示:

aws s3 cp s3://mybucket/myfile.tar.gz .

请注意尾随时间段,这意味着“到当前文件夹”。

或者您可以在下载过程中重命名文件,如下所示:

aws s3 cp s3://mybucket/myfile.tar.gz xyz.tar.gz

我想,如果您使用浏览器或其他工具(而不是awscli)下载tar.gz,则该工具可能会有所帮助,并在飞行中解压缩GZ文件,从而导致TAR文件。但是awscli本身不会做到这一点。