qiniu-store
Qiniu Storage for Ghost
Installation
Via Yarn or NPM
Install qiniu-store module
$ yarn add qiniu-store # or npm $ npm install qiniu-storeMake the storage folder if it doesn't exist yet
$ mkdir -p content/adapters/storageCopy the module into the right location
$ cp -vR node_modules/qiniu-store content/adapters/storage/qiniu
Via Git
In order to replace the storage module, the basic requirements are:
Create a new folder inside
content/adapterscalledstorage$ mkdir -p content/adapters/storageClone this repo to
storage$ cd [path/to/ghost]/content/adapters/storage $ git clone https://github.com/zce/qiniu-store.git qiniu --depth 1Install dependencies
$ cd qiniu $ yarn # or npm install
Usage
Ghost Adapter
In your config.[env].json file, you'll need to add a new storage block to whichever environment you want to change:
{
"storage": {
"active": "qiniu",
"qiniu": {
"accessKey": "<your access key>",
"secretKey": "<your secret key>",
"bucket": "<your bucket name>",
"domain": "<your bucket domain>",
"format": "${year}/${month}/${name}${ext}"
}
}
}Available format variables
${year}: 4 digit years${month}: 2 digit months${day}: 2 digit date${hour}: 2 digit hours${timestamp}: Unix ms timestamp${random}: 8 digit random${uuid}: uuid${name}: original file name${ext}: original file ext
Default format
"${year}/${month}/${name}${ext}"
Full example format
"${year}/${month}/${day}/${hour}/${name}-${uuid}-${timestamp}-${random}${ext}"
Programatically
const QiniuStore = require('qiniu-store')
const store = QiniuStore({
accessKey: '<your access key>',
secretKey: '<your secret key>',
bucket: '<your bucket name>',
domain: '<your bucket domain>',
format: '${year}/${month}/${name}${ext}'
})
// save file
const file = { name: 'wow.png', path: '/Users/zce/Pictures/mono.png' }
store.save(file, '2018/10')
// read file
store.read({ path: '2018/10/wow.png' })
// exists file
store.exists('wow.png', '2018/10')API
QiniuStore(options)
QiniuStore constructor
options
accessKey
- Type:
string - Details: qiniu access key.
secretKey
- Type:
string - Details: qiniu secret key.
bucket
- Type:
string - Details: qiniu bucket name.
domain
- Type:
string - Details: qiniu bucket domain.
format
- Type:
string - Details: file path format.
- Default: '${year}/${month}/${name}${ext}'
QiniuStore.prototype.save(file[, targetDir])
Save file to Qiniu storage, Returns a Promise for file url String.
file
name
- Type:
string - Details: the name of the file to upload.
path
- Type:
string - Details: the path of the file to upload.
targetDir
- Type:
string - Details: specific upload path.
QiniuStore.prototype.read(file)
Read file from Qiniu storage, Returns a Promise for file buffer Buffer.
file
path
- Type:
string - Details: the path of the file.
QiniuStore.prototype.exists(filename[, targetDir])
Returns a Promise for file exists.
filename
- Type:
string - Details: the name of the file.
targetDir
- Type:
string - Details: specific file direcory path.
:construction: QiniuStore.prototype.delete(filename[, targetDir])
filename
- Type:
string - Details: the name of the file.
targetDir
- Type:
string - Details: specific file direcory path.
Contributing
- Fork it on GitHub!
- Clone the fork to your own machine.
- Checkout your feature branch:
git checkout -b my-awesome-feature - Commit your changes to your own branch:
git commit -am 'Add some feature' - Push your work back up to your fork:
git push -u origin my-awesome-feature - Submit a Pull Request so that we can review your changes.
NOTE: Be sure to merge the latest from "upstream" before making a pull request!
License
MIT © zce w@zce.me (https://zce.me/)