Jekyll Deployed to AWS S3 Links Not Working

Viewed 322

I created a Jekyll page and got it uploaded to AWS S3 through Travis. The links aren't working. For example:

https://s3.amazonaws.com/data-flood - doesn't work https://s3.amazonaws.com/data-flood/index.html - works

When accessing specific files they work https://s3.amazonaws.com/data-flood/images/picture1.jpeg - works

But accessing folders they don't work: http://s3.amazonaws.com/data-flood/blog - doesn't work index.html is in /blog/ but http://s3.amazonaws.com/data-flood/blog/index.html - works

Here's my working GitHub Pages: https://dighr.github.io/data-flood/

My GitHub Repo: https://github.com/richardt22/data-flood

Thanks in advance.

1 Answers

S3 cannot do extensionless urls on its own - so /data-flood won't work no matter what I don't think. But if you add a trailing slash it should work, but for some reason it is not.

It looks like the url you are using is not serving files like a webserver - I think the correct url should be:

http://data-flood.s3.amazonaws.com/index.html

that almost works, but still the urls need an index.html added to them, I think this has something to do with the bucket policy but not sure.

A normalish bucket policy for a website could look like:

{"Version":"2008-10-17","Statement":[{"Sid":"PublicReadForGetBucketObjects","Effect":"Allow","Principal":{"AWS":"*"},"Action":"s3:GetObject","Resource":"arn:aws:s3:::data-flood/*"}]}

not sure I got your arn correct but maybe.

Related