我备份了一个 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 脚本来做到这一点,但我不知道这样是否会更好?
非常感谢您的帮助!提前致谢!
我这样加密:
tar -czf - /path/to/file | openssl enc -e -aes256 -pbkdf2 -salt -out backup.tar.gz -pass pass:$ENCRYPTION_PASS
最佳答案
您可以使用 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
本身不会执行此操作。
关于python - 如何从 AWS S3 存储桶下载加密的 .gz 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60976596/