我正在使用Pelican从markdown生成静态网页。然后,我使用s3cmd:
将输出上传到S3s3cmd sync -rr --delete-removed output/ s3://mybucket/
不幸的是,css文件的元数据设置错误,我要将它们设置为“text / css”。有没有办法让s3cmd将它们(可能还有其他文件类型)设置为正确的值?或者如果没有,是否有替代s3cmd在Linux和MacOS X上运行?
答案 0 :(得分:4)
您可以使用-m开关
上传到s3时设置文件的mime类型s3cmd -m text/css ./file.css s3:/path/to/bucket
另外,我所做的是首先用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'/>";
?>