使用nuxt,express,mysql,nginx创建个人博客系列-16
447
2020-01-24 18:37
1 年前
上传文章图片
目录:server/admin/routers/index.js
import cos from '../../libs/cos' // 自己把腾讯cos库重新封装了一下
import multer from 'multer' //上传图片中间件,其实就是处理multipart/form-data类型数据
let upload = multer();
router.post('/upload/file', upload.single('file'), async (req, res, next) => {
// 引入模块
let file = req.file;
let type = file.mimetype.split('/')[1]; // 获取图片类型
let Key = `/upload/${util.getDateDir('months')}${util.createNoncestr()+util.getTimeString()}.${type}` // 设置上传的路径和文件名
let params = {
Bucket: `blog-${config.cos.APPID}`, //腾讯cos桶的名称
/* 必须 */
Region: 'ap-chengdu', //桶的区域
/* 必须 */
Key, //文件名称
/* 必须 */
ContentLength: file.size, // 大小
/* 必须 */
Body: file.buffer,
/* 必须 */
onProgress: function (progressData) {
console.log(progressData);
},
};
let result =null ;
try{
result = await cos.putObject(params); // 调用
}catch(err){
return res.send(util.resError({
msg:err
}))
}
return res.send(util.resSuccess({
data: result
}))
})
腾讯cos库的封装 目录:server/libs/cos.js
import COS from 'cos-nodejs-sdk-v5' // 引入cos的sdk
// 创建实例
import config from '../config' //引入自定义的配置文件
let cos = new COS({
// AppId: config.cos.APPID,
SecretId: config.cos.SecretId,
SecretKey: config.cos.SecretKey,
});
let putObject = (params) => {
return new Promise((resolve, reject)=>{
cos.putObject(params,(err, data)=>{
if(err){
reject(err)
}else{
resolve(data)
}
})
})
}
export default {
putObject
}
添加config
目录:server/config/index.js 说明:如何获取这些配置,自己登录腾讯云
"cos":{
APPID:"*****",
SecretId:"*****",
SecretKey:"*****"
}
至此为止简单的后台界面做完了,别的功能有待完善,相信大家看完之后也会自己写一些自己的功能了
上一篇-使用nuxt,express,mysql,nginx创建个人博客系列-15
下一篇-使用nuxt,express,mysql,nginx创建个人博客系列-17