问题描述
当我从 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,然后使用您在问题中提到的命令下载它们。当然用正确的名称替换占位符等