qiniu-store
v0.2.0
Published
Qiniu Storage for Ghost
Downloads
9
Readme
qiniu-store
Qiniu Storage for Ghost
Installation
Via Yarn or NPM
Install qiniu-store module
$ yarn add qiniu-store # or npm $ npm install qiniu-store
Make the storage folder if it doesn't exist yet
$ mkdir -p content/adapters/storage
Copy 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/adapters
calledstorage
$ mkdir -p content/adapters/storage
Clone this repo to
storage
$ cd [path/to/ghost]/content/adapters/storage $ git clone https://github.com/zce/qiniu-store.git qiniu --depth 1
Install 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 [email protected] (https://zce.me/)