2012-04-03 43 views
3

我使用Pelican从降价生成静态网页。然后,我用s3cmd上传输出S3:使用s3cmd将静态网站上传到Amazon S3时设置元数据

s3cmd sync -rr --delete-removed output/ s3://mybucket/ 

不幸的是,对于CSS文件的元数据设置错了,我已经将它们设置manualy为“text/CSS”。有没有办法让s3cmd将它们(也可能是其他文件类型)设置为正确的值?或者,如果没有,是否有替代s3cmd在Linux和MacOS X上运行?

+0

你正在使用哪个版本的s3cmd? – draganstankovic 2012-04-04 12:39:13

+0

s3cmd版本1.1.0-beta3 – 2012-04-23 11:53:47

回答

4

可以设置MIME类型文件的上传的同时,通过使用-m开关

s3cmd -m text/css ./file.css s3:/path/to/bucket 

此外到S3,我做什么,是用gzip压缩它,然后再上传到S3,但你也必须设置内容编码。请注意,Chrome和Safari有时不喜欢.gz扩展名,所以我使用.jgz。

gzip file.css -9 -c > file.css.jgz 
s3cmd -m text/css ./file.css s3:/path/to/bucket 
s3cmd -m text/css --add-header "Content-Encoding:gzip" ./file.css.jgz s3:/path/to/bucket 

另请注意,在链接到此css的html文件中,您应该检查浏览器是否可以处理gzip。这里是一个在php中的示例:

<?php 
    $css = "$PATH_TO_S3_BUCKET/file.css"; 
    if (strstr($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')) 
     $css .= '.jgz'; 

    echo "<link rel='stylesheet' type='text/css' href='$css'/>"; 
?> 
+0

非常感谢... – 2012-04-26 07:50:50

相关问题