UNPKG

meipian-qiniu

Version:

meipian qiniu upload files

41 lines (37 loc) 1.33 kB
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) } }) }