2017-07-26 34 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'會創建一個重要且可避免的歧義。 –