Amazon s3 permalink Amazon S3静态站点托管(BitBucket管道和S3_网站)中尾部斜杠的替代方案

Amazon s3 permalink Amazon S3静态站点托管(BitBucket管道和S3_网站)中尾部斜杠的替代方案,amazon-s3,jekyll,Amazon S3,Jekyll,我正在AmazonS3上托管我的静态站点(用Jekyll构建)。S3存储桶需要URL以.html结尾。因为我想要干净的URL,所以我继续在我的\u config.yml中的permalink属性中添加了一个尾随斜杠。现在,我的链接就像https://blog.domain.com/2017/07/post-slug/ 这意味着博客中的每一篇文章都有一个单独的文件夹和一个index.html 这种方法的缺点是什么?或者是否有其他方法可以移动文件并重命名,如中所述 由于我使用的设置,到目前为止,我所

我正在AmazonS3上托管我的静态站点(用Jekyll构建)。S3存储桶需要URL以
.html
结尾。因为我想要干净的URL,所以我继续在我的
\u config.yml
中的
permalink
属性中添加了一个尾随斜杠。现在,我的链接就像
https://blog.domain.com/2017/07/post-slug/

这意味着博客中的每一篇文章都有一个单独的文件夹和一个
index.html

这种方法的缺点是什么?或者是否有其他方法可以移动文件并重命名,如中所述


由于我使用的设置,到目前为止,我所有以编程方式删除扩展名和设置文件类型的尝试都没有成功。

S3存储桶可以提供不以
.html
结尾的html文件,前提是在上载时设置了正确的MIME类型

首先,复制不带扩展名的文件:

aws s3 cp _site/ <your_bucket> --content-type text/html --recursive --exclude "*.*"
aws s3 cp _site/ <your_bucket> --recursive --exclude "*" --include "*.*"
aws s3 cp\u站点/--内容类型text/html--递归--排除“***”
然后是扩展名为.html的文件:

aws s3 cp _site/ <your_bucket> --content-type text/html --recursive --exclude "*.*"
aws s3 cp _site/ <your_bucket> --recursive --exclude "*" --include "*.*"
aws s3 cp\u站点/--递归--排除“*”--包括“***”

我一直在使用这种方法,并写了一篇文章,我认为您可能会发现这篇文章很有用。

S3 bucket可以提供不以
.html
结尾的html文件,前提是您在上传它们时设置了正确的MIME类型

首先,复制不带扩展名的文件:

aws s3 cp _site/ <your_bucket> --content-type text/html --recursive --exclude "*.*"
aws s3 cp _site/ <your_bucket> --recursive --exclude "*" --include "*.*"
aws s3 cp\u站点/--内容类型text/html--递归--排除“***”
然后是扩展名为.html的文件:

aws s3 cp _site/ <your_bucket> --content-type text/html --recursive --exclude "*.*"
aws s3 cp _site/ <your_bucket> --recursive --exclude "*" --include "*.*"
aws s3 cp\u站点/--递归--排除“*”--包括“***”

我一直在使用这种方法,并写了一篇文章,我认为你可能会觉得有用。

Hey@marcanuy,谢谢你!我正在使用BitBucket管道构建站点并将其部署到S3<代码>s3\u网站将内容推送到s3。我将尝试一种类似于aws s3 cp的方法并进行恢复。这很有效!我添加了一个步骤来重命名HTML文件,正如你在帖子中提到的:
find\u site/-typef-iname'index.html'-iname'*.html'-print0 |而read-d$'\0'f;执行mv“$f”“${f%.html}”;完成
。虽然它可以在不设置MIME类型的情况下工作(目前),但我认为应该寻找一种显式设置MIME类型的方法。非常感谢@RamIyer很好,我必须显式设置文件内容类型,否则s3不会将其识别为html文件,可能是您可以忽略它,具体取决于您的bucket默认配置。我刚刚发现有一个方法可以帮助您实现这一点。我正在使用
s3\u网站
来推送。@RamIyer很好的一个,所以你也可以使用它,刚刚看到了代码,这相当于
aws
——无扩展文件的content-type text/html
参数。嘿@marcanuy,谢谢你!我正在使用BitBucket管道构建站点并将其部署到S3<代码>s3\u网站将内容推送到s3。我将尝试一种类似于aws s3 cp的方法并进行恢复。这很有效!我添加了一个步骤来重命名HTML文件,正如你在帖子中提到的:
find\u site/-typef-iname'index.html'-iname'*.html'-print0 |而read-d$'\0'f;执行mv“$f”“${f%.html}”;完成
。虽然它可以在不设置MIME类型的情况下工作(目前),但我认为应该寻找一种显式设置MIME类型的方法。非常感谢@RamIyer很好,我必须显式设置文件内容类型,否则s3不会将其识别为html文件,可能是您可以忽略它,具体取决于您的bucket默认配置。我刚刚发现有一个方法可以帮助您实现这一点。我正在使用
s3\u网站
来进行推送。@RamIyer很好的一个,所以你也可以使用它,只是看到了代码,这相当于
aws
--无扩展文件的content-type text/html
参数。