2013-09-05 64 views
2

我曾经使用s3cmd,然后我不得不升级到版本1.5.0-alpha3。我一直无法做一个适当的s3cmd同步与头--add-header="Content-Encoding: gzip"从命令行上将压缩的内容上传到AWS S3。

我使用的命令是

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"标头。

应该从今天开始使用什么工具(以及来自哪个版本的源代码,即os软件包管理器,github)来成功同步gzip文件?

回答

2

当你下载它们时,它们“自动地”被你的用户代理解压缩......因为这就是假设发生在你用合适的头文件存储gzip内容时,比如......检查AWS控制台中的文件,我希望您会发现您存储的内容比您下载的文件要小。

当您将gzip内容与Content-Encoding: gzip一起存储时,您也将放弃.gz扩展名,因为当传递给最终用户时,由于浏览器或wget等内容无法编码,最终下载的内容将不再进行gzip压缩它,如果你愿意。

如果您只是想将.gz文件作为.gz文件下载,请勿设置Content-Encoding。

+0

我希望把GZ文件那里下载非gzip的。例如。 js和css文件。该过程正常工作。唯一被破坏的部分是s3命令行工具,它似乎用'content-encoding:gzip'标题搞乱了上传 –

1

或者您可以使用Minio Client aka mc

通过简单的操作如下面应该工作。

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

希望它有帮助。

声明:我工作了Minio