GitXplorerGitXplorer
s

hexo-deployer-aws-s3

public
1 stars
1 forks
1 issues

Commits

List of commits on branch main.
Verified
9dce9e7bacbd03595ba13a9b7d7b8caf6f32a7d6

Release 0.7.0

sstringbean committed a year ago
Verified
3f341f6ade7e8aeb1dbabfa35f644ad93518823c

Upgrade dependencies (#9)

sstringbean committed a year ago
Verified
a768cad145327aecf606c2213d1d62b6f35787e0

Add GitHub workflow & update packages (#8)

sstringbean committed 2 years ago
Verified
8047cc6a50cbb9ea7ef2525f86d5dcf4d57f8d64

Release 0.5.0

sstringbean committed 3 years ago
Verified
d5dce4c8d698ae6069af135f631feaacdd7dea78

Add initial cache policy handling

sstringbean committed 3 years ago
Verified
d392ae54f8f2bfc64aea5c9117cd105e70079fce

Add license file

sstringbean committed 3 years ago

README

The README file for this repository.

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.

⚠️ 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

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).