2017-07-26 37 views
0

我从S3存储桶中下载了一个云端GZ文件,但是当我尝试使用新下载的7zip解压缩时,错误消息显示“无法打开文件xxx作为存档”。我试图将日志保存在不同的S3存储桶中。我删除了线索并重新创建了它。我试着停下脚步,然后下载它。它总是一样的。这是怎么回事?AWS CloudTrail日志无法解压

+0

如果您使用命令行,那么只需在您的文件名中使用'unzip'命令。 –

+1

你是如何下载.gz文件的?我注意到,当我通过S3管理控制台下载时,它已经解压缩。在文本编辑器中查看文件,看看它是否显示为正常的JSON内容。 –

+0

谢谢约翰!你是对的。它已经解压缩。 –

回答

4

我的测试显示,在Amazon S3控制台中下载.gz文件实际上保存了文件的解压缩版本。请注意,文件扩展名将显示gzip文件,而不是类型.gz

我认为这是因为浏览器可以处理压缩格式为.gz的HTML文件,所以它们本地解压缩这些文件。

+0

很酷,对于不错的解释+1) –

+0

Broswers不会自动处理'.gz' *文件*,但它们会自动处理'Content-Encoding:gzip'。这不幸的是,CloudTrail部分的设计行为不正确,但这是我看到人们犯的一个错误:对象使用'Content-Encoding:gzip'存储在S3中。除非*对象已经被两次压缩*,否则*和*给文件一个'.gz'扩展**是根本不正确的,这当然是没有理由的。对于'.gz'文件可以下载为'.gz'文件*,'Content-Encoding'为空,'Content-Type'为'application/gzip'或类似文件。 –

+0

...在目前的情况下,文件应该是现在只用'.json'扩展名和'Content-Type'和'Content-Encoding'来设置的,因为gzip不是*文件*本身,而是实体的HTTP *表示* - 一个JSON文档。添加'.gz'会创建一个重要且可避免的歧义。 –