UNPKG

@se7enwang/ghost-qn-store

Version:

Qiniu store for Ghost blog.

136 lines (99 loc) 3.6 kB
# Ghost Qiniu Storage This [Ghost custom storage module](https://github.com/TryGhost/Ghost/wiki/Using-a-custom-storage-module) allows you to store media file at [Qiniu](http://www.qiniu.com/) instead of storing at local machine. It requires Ghost greater than `1.x`! - [Old version for Ghost less than `1.x`](https://github.com/minwe/qn-store/tree/1.x) ## Installation ### Via NPM - Install Qiniu storage module ``` npm install ghost-qn-store ``` - Make the storage folder if it doesn't exist yet ``` mkdir content/adapters/storage ``` - Copy the module into the right location ``` cp -vR node_modules/ghost-qn-store content/adapters/storage/qn-store ``` ### Via Git In order to replace the storage module, the basic requirements are: - Create a new folder inside `/content/adapters` called `/storage` - Clone this repo to `/storage` ``` cd [path/to/ghost]/content/adapters/storage git clone https://github.com/Minwe/qn-store.git ``` - Install dependencies ``` cd qn-store npm install ``` ### The Old way **The instruction below is NOT recommended for upgrade reason:** > Your install instructions require users to do an `npm install --save` - this modifies the package.json and makes the upgrade path for Ghost much, much harder. This was never the intention with the storage system. ([via](https://github.com/minwe/qn-store/issues/6)) - **Installation from NPM.** ``` npm install --save ghost-qn-store ``` - **Create storage module.** Create `index.js` file with folder path `content/adapters/storage/qn-store/index.js` (manually create folder if not exist). ``` javascript 'use strict'; module.exports = require('ghost-qn-store'); ``` ## Configuration In your `config.[env].json` file, you'll need to add a new `storage` block to whichever environment you want to change: ```json { // ... "storage": { "active": "qn-store", "qn-store": { "accessKey": "your access key", "secretKey": "your secret key", "bucket": "your bucket name", "origin": "http://xx.xx.xx.glb.clouddn.com", "uploadURL": "up-z2.qiniup.com", "fileKey": { "safeString": true, "prefix": "YYYYMM/" } } } // ... } ``` More options: ```javascript storage: { active: 'qn-store', 'qn-store': { accessKey: 'your access key', secretKey: 'your secret key', bucket: 'your bucket name', // bucket domain origin: 'http://xx.xx.xx.glb.clouddn.com', // timeout: 3600000, // default rpc timeout: one hour, optional // uploadURL is related with bucket // see: https://developer.qiniu.com/kodo/manual/1671/region-endpoint uploadURL: 'up-z2.qiniup.com', // file storage key config [optional] // if `fileKey` not set, Qiniu will use `SHA1` of file content as key. fileKey: { // use Qiniu hash as file basename, if set, `safeString` will be ignored hashAsBasename: false, safeString: true, // use Ghost safaString util to rename filename, e.g. Chinese to Pinyin prefix: 'YYYY/MM/', // {String} will be formated by moment.js, using `[]` to escape, suffix: '', // {String} string added before file extname. extname: true // keep file's extname } // take `外面的世界 x.jpg` as example, // applied above options, you will get an URL like below after uploaded: // http://xx.xx.xx.glb.clouddn.com/2016/06/wai-mian-de-shi-jie-x.jpg } } ``` ## FAQS - [Image optimisation](https://ghost.org/docs/concepts/config/#image-optimisation) ## License Read [LICENSE](LICENSE)