qiniu-store

0.2.0 • Public • Published

qiniu-store

Build Status Coverage Status NPM Downloads NPM Version License Dependency Status devDependency Status Code Style

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 called storage

    $ 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.

🚧 QiniuStore.prototype.delete(filename[, targetDir])

filename

  • Type: string
  • Details: the name of the file.

targetDir

  • Type: string
  • Details: specific file direcory path.

Contributing

  1. Fork it on GitHub!
  2. Clone the fork to your own machine.
  3. Checkout your feature branch: git checkout -b my-awesome-feature
  4. Commit your changes to your own branch: git commit -am 'Add some feature'
  5. Push your work back up to your fork: git push -u origin my-awesome-feature
  6. 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/)

Readme

Keywords

Package Sidebar

Install

npm i qiniu-store

Weekly Downloads

0

Version

0.2.0

License

MIT

Unpacked Size

13.3 kB

Total Files

7

Last publish

Collaborators

  • zce