This Ghost custom storage module allows you to store media file at Qiniu instead of storing at local machine. It requires Ghost greater than 1.x
!
-
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
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 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)
-
Installation from NPM.
npm install --save ghost-qn-store
-
Create storage module.
Create
index.js
file with folder pathcontent/adapters/storage/qn-store/index.js
(manually create folder if not exist).'use strict'; module.exports = require('ghost-qn-store');
In your config.[env].json
file, you'll need to add a new storage
block to whichever environment you want to change:
{
// ...
"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:
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
}
}
Read LICENSE