0.7.0 • Published 2 years ago

@string-bean/hexo-deployer-aws-s3 v0.7.0

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
2 years ago

Hexo S3 Deployer

npm version License

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 to new-post.
  • another.html to pages/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

NameDefaultDescription
regionrequiredAWS region that the bucket is hosted in.
bucketrequiredAWS bucket to upload to.
profiledefaultAWS credentials profile to use (see Named Profiles).
delete_unknownfalseIf true then any unknown files will be deleted from the bucket.
cloudfront_distributionnoneCloudFront distribution ID to invalidate on deploy.
redirectsnoneMappings of from path → destination path that will get converted into redirect rules.
host_namenoneDomain name of the S3 website that will be used for redirects.
cache_policiesnoneMap of MIME types to cache-expiry duration (in seconds).
0.7.0

2 years ago

0.6.0

2 years ago

0.5.0

3 years ago

0.4.2

3 years ago

0.4.1

3 years ago

0.4.0

3 years ago

0.3.0

3 years ago

0.2.0

3 years ago

0.1.1

3 years ago

0.1.0

3 years ago