gpt4 book ai didi

web - 使用 s3cmd 将静态网站上传到 Amazon S3 时设置元数据

转载 作者:行者123 更新时间:2023-12-02 09:05:17 24 4
gpt4 key购买 nike

我正在使用 Pelican 从 Markdown 生成静态网页。然后,我使用 s3cmd 将输出上传到 S3:

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

不幸的是,css 文件的元数据设置错误,我必须手动将它们设置为“text/css”。有没有办法让 s3cmd 将它们(也许还有其他文件类型)设置为正确的值?或者如果没有,是否有在 Linux 和 MacOS X 上运行的 s3cmd 的替代方案?

最佳答案

您可以在上传到 s3 时使用 -m 开关设置文件的 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'/>";
?>

关于web - 使用 s3cmd 将静态网站上传到 Amazon S3 时设置元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9988407/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com