ghost-storage-s3
v2.0.0
Published
Store Ghost's images on S3 and proxy requests for local images to S3.
Downloads
4
Maintainers
Readme
Ghost S3 Storage, compatability mode
This module allows you to read and write images from Amazon S3 instead of storing them locally.
After installing, new images that you save will use an absolute URL to S3. Any
requests to /content/images/
will be proxied to S3, so that any previous
images in your blog will not be affected.
Installation
You will need to have a the custom storage module directly in your project directory, the easiest way to do this is to change to the directory your ghost installation and execute the following commands:
$ npm install ghost-storage-s3
$ npm shrinkwrap
Create Storage Module
Create a directory to store your custom storage module:
$ sudo mkdir -p content/storage/ghost-s3
In the ghost-s3/
directory you need to create a file named index.js
with the following
contents:
'use strict';
module.exports = require('ghost-storage-s3');
Configuration
Create new IAM User with permissions to get object from that bucket. Save the ACCESS_KEY
and SECRET_ACCESS_KEY
.
In config.js
, add a storage
block for each environment. A list of valid regions can be accessed in the AWS General Reference of S3 AWS Regions and Endpoints.
storage: {
active: 'ghost-s3',
'ghost-s3': {
accessKeyId: 'ACCESS_KEY',
secretAccessKey: 'SECRET_ACCESS_KEY',
bucket: 'S3_BUCKET_NAME',
region: 'S3_REGION'
}
}
Asset Host
You can add assetHost
to your config to specify a virtual host url. This is most frequently used with a content delivery network (CDN) such as CloudFront, CloudFlare, or others. The modified storage
block would be:
storage: {
active: 'ghost-s3',
'ghost-s3': {
accessKeyId: 'ACCESS_KEY',
secretAccessKey: 'SECRET_ACCESS_KEY',
bucket: 'S3_BUCKET_NAME',
region: 'S3_REGION',
assetHost: 'https://cdn.yourdomain.com/'
}
}
For more information, read the Virtual Hosting of Buckets section of the AWS S3 Developer Guide.
Copyright & License
- Original work Copyright (c) 2015 Hoang Pham Huu [email protected]
- Modified work Copyright (c) 2016 Curiosity Media, Inc.
- Modified work by Frank Hinek
Released under the MIT license.