@string-bean/hexo-deployer-aws-s3
v0.7.0
Published
Hexo plugin for deploying to S3
Downloads
3
Maintainers
Readme
Hexo S3 Deployer
Plugin for deploying Hexo sites to Amazon S3.
This is an alternative to the existing hexo-deployer-s3 and hexo-deployer-s3-cloudfront plugins that has been written from the ground up to use the new AWS SDK v3.
Installation
npm install -S @string-bean/hexo-deployer-aws-s3
Usage
Add the following section to your Hexo _config.yml
:
deploy:
type: aws-s3
region: us-east-1
bucket: example-bucket
And then deploy using hexo deploy
.
CloudFront Invalidation
After deploying to S3 the plugin can optionally invalidate a CloudFront distribution to force a cache refresh. To do this, add the CloudFront distribution ID to your Hexo config:
deploy:
type: aws-s3
region: us-east-1
bucket: example-bucket
cloudfront_distribution: EXAMPLE123
Redirect Rules
Adding S3 webpage redirects is supported via entries in the Hexo config and via page front-matter.
:warning: Any existing webpage redirects configured for the S3 bucket will get overwritten by the redirects generated by this plugin.
Via Front-Matter
With a permalink
setting of :year/:month/:day/:title/
and the following front-matter:
---
title: Exciting Post
date: 2022-01-01 12:00:00
redirect_from: old-path.html
---
A redirect from old-path.html
to 2022/01/01/exciting-post
will be generated.
Via Config
Additionally, redirects can be specified directly in the Hexo config:
deploy:
type: aws-s3
redirects:
'old.html': 'new-post'
'another.html': 'pages/something/new'
Will generate the following redirects:
old.html
tonew-post
.another.html
topages/something/new
.
Cache Policies
Cache expiry durations can be defined on a per MIME type basis and are defined in seconds. Any unmatched MIME types will be served without a cache header.
For example:
deploy:
type: aws-s3
cache_policies:
text/css: 86400 # 24 hours
Will serve the following header for CSS files:
Cache-Control: public, max-age=86400;
Options
| Name | Default | Description |
| ------------------------- | ---------- | ------------------------------------------------------------------------------------- |
| region
| required | AWS region that the bucket is hosted in. |
| bucket
| required | AWS bucket to upload to. |
| profile
| default
| AWS credentials profile to use (see Named Profiles). |
| delete_unknown
| false
| If true
then any unknown files will be deleted from the bucket. |
| cloudfront_distribution
| none | CloudFront distribution ID to invalidate on deploy. |
| redirects
| none | Mappings of from path → destination path that will get converted into redirect rules. |
| host_name
| none | Domain name of the S3 website that will be used for redirects. |
| cache_policies
| none | Map of MIME types to cache-expiry duration (in seconds). |