将 tar.gz 文件从 S3 下载/复制到 EC2

问题描述

当我从 AWS S3 下载 tar.gz 文件,然后尝试解压它时,我收到以下错误

tar -xzvf filename_backup_jan212021_01.tar.gz

gzip: stdin: not in gzip format

tar: Child returned status 1
tar: Error is not recoverable: exiting Now

当我检查它是什么类型的文件时,我得到了这个:

file filename_backup_jan212021_01.tar.gz
filename_backup_jan212021_01.tar.gz: ASCII text

这是我用来将文件从 S3 复制到我的 EC2 的命令:

aws s3 cp s3://bucket_name/filename_backup_jan212021_01.tar.gz .

请帮我找到从 AWS S3 下载后提取 tar.gz 文件解决方案。

解决方法

app.js

tar -xzvf filename_backup_jan212021_01.tar.gz gzip: stdin: not in gzip format file filename_backup_jan212021_01.tar.gz filename_backup_jan212021_01.tar.gz: ASCII text

cat filename_backup_jan212021_01.tar.gz 

所有这些都表明上传到 S3 本身的文件不是 gzip 压缩的 tar 文件,而只是一个以 /home/ec2-user/file_delete_01.txt /home/ec2-user/file_jan2021.txt /home/ec2-user/filename_backup_jan1.tar.gz /home/ec2-user/filename_backup_jan1.txt /home/ec2-user/filename_backup_jan2.tar.gz /home/ec2-user/filename_backup_jan3.tar.gz 文件名上传的纯文本文件。虽然文件名和扩展名是用来向人类表明内容类型的,但计算机并不这么认为 :)

您可以使用

创建文件
.tar.gz

创建存档并将其上传到 S3,然后使用您在问题中提到的命令下载它们。当然用正确的名称替换占位符等