近期需要去臨時支撐一個小后臺用于上傳指定包到七牛,考慮到需求較小遍直接選型了 node 來做 同時也放棄了龐大的express 使用了 koa2 來實現(xiàn) 后臺頁面偷懶就直接拉了layui的模板
server : node
express: koa2
template: layui
其實很簡單 首先 直接用了koa2的腳手架
npm install -g koa-generator
生成項目
koa2 test_koa
然后進(jìn)入到目錄下
npm install
簡單的服務(wù)就完成了
http://localhost:3000/ 就可以預(yù)覽了
文章最后會直接貼上git的鏈接 所以這里就只寫關(guān)鍵代碼了
/**
*
* @Exm Model
* Qiniu文件上傳
* @Dmr
* @DateTime Mon Jul 02 2018 16:48:06 GMT+0800 (中國標(biāo)準(zhǔn)時間)
* @Param
*
* {
* bucket : // 七??臻g名
* filePath : // 文件路徑
* access_key : // 七牛的accessKey
* secret_key : // 七牛的secretKey
* qiniuFileName : // 上傳到服務(wù)器上的文件名
* }
*/
var qiniu = require("qiniu");
module.exports = function ( options ) {
if ( !options.bucket && !options.qiniuFileName && !options.filePath ){
console.log('請補(bǔ)全參數(shù)!');
return false;
}
//默認(rèn)參數(shù)
options = Object.assign({
bucket: '',
filePath: '',
qiniuFileName: ''
},options);
const accessKey = options.access_key
const secretKey = options.secret_key
//生成一個上傳的憑證
const mac = new qiniu.auth.digest.Mac(accessKey, secretKey)
//設(shè)置七牛的上傳空間
const putPolicy = new qiniu.rs.PutPolicy({
scope: options.bucket
})
//生成上傳的Token
const uploadToken = putPolicy.uploadToken(mac)
//實例化config
const config = new qiniu.conf.Config()
// 空間對應(yīng)的機(jī)房
config.zone = qiniu.zone.Zone_z0
const localFile = options.filePath
const formUploader = new qiniu.form_up.FormUploader(config)
const putExtra = new qiniu.form_up.PutExtra()
// 文件上傳
return new Promise((resolved, reject) => {
formUploader.putFile(uploadToken, options.qiniuFileName, localFile, putExtra, function (respErr, respBody, respInfo) {
if (respErr) {
reject(respErr)
}
if (respInfo.statusCode == 200) {
resolved(respBody)
} else {
resolved(respBody)
}
})
})
}
這樣就可以了 注意返回的是一個Promise