从命令行上载gzip压缩内容到AWS S3。

时间:2013-09-05 16:25:32

标签: amazon-web-services amazon-s3 s3cmd

我曾经使用s3cmd,然后我不得不将其升级到版本1.5.0-alpha3。我无法使用标头--add-header="Content-Encoding: gzip"

进行正确的s3cmd同步

我使用的命令是

s3cmd --add-header="Content-Encoding: gzip" --add-header="Cache-Control:public, max-age=86400" --add-header='Content-Type: application/javascript' --recursive put local remote_S3_bucket

标题已上传,但压缩文件以某种方式解压缩。我已尝试使用/不使用--no-preserve标志以及标题的其他几种排列。

我也尝试对aws s3 cli做同样的事情,但似乎没有办法用这个工具添加"Content-Encoding: gzip"标题。

今天应该使用什么工具(和版本以及源代码包管理器,github)来成功同步gzip压缩文件?

2 个答案:

答案 0 :(得分:2)

当你下载它们时,它们会“以某种方式”被你的用户代理自动解压缩......因为当你用正确的标题存储gzip压缩内容时会发生所谓的,就像那些......检查AWS控制台中文件的大小,我希望您会发现存储的内容小于您下载的内容。

当您使用Content-Encoding: gzip存储gzip压缩内容时,您也会删除.gz扩展名,因为当移交给最终用户时,最终下载的内容不再被gzip压缩,因为浏览器或wget等内容 - 如果你愿意的话,不要对它进行编码。

如果您只想将.gz文件放在那里作为.gz文件下载,请不要设置Content-Encoding。

答案 1 :(得分:1)

或者您可以使用Minio Client aka mc

如下所示的简单操作应该有效。

$ mc cat  | gzip - | mc pipe s3/bucket/file

希望它有所帮助。

免责声明:我为Minio

工作