首页 > 解决方案 > 如何以纯文本格式下载 S3 驱动器上的压缩内容?

问题描述

我将 HTML 数据存储在 S3 存储桶中,该存储桶用作以 gzip 压缩格式存储的静态站点。虽然我可以正确访问我的 S3 站点并且浏览器知道解压缩它,但我无法使用 AWS CLI 下载它,因为即使在复制到磁盘之后,下载的原始数据仍然是 gzip 压缩的(而不是在下载后解压缩),因此通过文本编辑器或浏览器打开时出现乱码。

我尝试显式传递内容编码以将 S3 上的 gzip 内容转换为纯文本,但下载的文件似乎仍然具有 gzip 字节而不是原始 UTF-8。这是我尝试过的命令:

aws s3 cp s3://mys3bucket.com/index.html ./test.html --content-encoding "gzip" --content-type "text/html"

标签: amazon-s3compressiongzipcontent-typecontent-encoding

解决方案


下载后(或同时),您可以自己解压缩数据。如果您使用的是 Unix 变体,这将通过管道输出来完成,zcat如下所示:

aws s3 cp s3://mys3bucket.com/index.html ./test.html --content-encoding "gzip" --content-type "text/html" | zcat

您还可以将数据存储在文件中,然后将其解压缩。

在 S3 端解压缩它是无稽之谈,因为那样你就必须传输更多数据(未压缩版本)。


推荐阅读