meipian-qiniu
Version:
meipian qiniu upload files
41 lines (37 loc) • 1.33 kB
JavaScript
const qiniu = require('qiniu')
const chalk = require('chalk')
module.exports = function(url, bucket, localFile, fileKey, fn) {
let context = this
let accessKey = context.accessKey
let secretKey = context.secretKey
let mac = new qiniu.auth.digest.Mac(accessKey, secretKey)
let options = {
scope: bucket,
returnBody: '{"key":"$(key)","fsize":$(fsize),"bucket":"$(bucket)"}'
}
let putPolicy = new qiniu.rs.PutPolicy(options)
let uploadToken = putPolicy.uploadToken(mac)
let config = new qiniu.conf.Config()
let formUploader = new qiniu.form_up.FormUploader(config)
let putExtra = new qiniu.form_up.PutExtra()
config.zone = qiniu.zone.Zone_z0
formUploader.putFile(uploadToken, fileKey, localFile, putExtra,
function(respErr, respBody, respInfo) {
let cdnAdr = ''
if (respErr) {
throw respErr
}
cdnAdr = `${url}/${respBody.key}`
if (Number(respInfo.statusCode) === 200) {
console.log(chalk.green([
`Upload Adrress -- bucket: ${respBody.bucket}`,
` -- file: ${cdnAdr}`,
` -- size:( ${(Number(respBody.fsize) / 1000)} KB)`
].join('\n')))
fn ? fn.apply(context, [cdnAdr]) : ''
} else {
console.log(chalk.red(fileKey + ' ' + 'upload failure.'))
console.log(respBody)
}
})
}