我使用Pelican从降价生成静态网页。然后,我用s3cmd上传输出S3:使用s3cmd将静态网站上传到Amazon S3时设置元数据
s3cmd sync -rr --delete-removed output/ s3://mybucket/
不幸的是,对于CSS文件的元数据设置错了,我已经将它们设置manualy为“text/CSS”。有没有办法让s3cmd将它们(也可能是其他文件类型)设置为正确的值?或者,如果没有,是否有替代s3cmd在Linux和MacOS X上运行?
我使用Pelican从降价生成静态网页。然后,我用s3cmd上传输出S3:使用s3cmd将静态网站上传到Amazon S3时设置元数据
s3cmd sync -rr --delete-removed output/ s3://mybucket/
不幸的是,对于CSS文件的元数据设置错了,我已经将它们设置manualy为“text/CSS”。有没有办法让s3cmd将它们(也可能是其他文件类型)设置为正确的值?或者,如果没有,是否有替代s3cmd在Linux和MacOS X上运行?
可以设置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'/>";
?>
非常感谢... – 2012-04-26 07:50:50
你正在使用哪个版本的s3cmd? – draganstankovic 2012-04-04 12:39:13
s3cmd版本1.1.0-beta3 – 2012-04-23 11:53:47