一、開通阿里云oss
二难衰、新建Bucket钦无,創(chuàng)建accessKeyId和accessKeySecret
image.png
三、購買資源包
image.png
買一個(gè)儲(chǔ)存包盖袭,一個(gè)下行流量包
image.png
四失暂、安裝ali-oss插件
npm install ali-oss --save
五、寫代碼
var express=require('express');
var router = express.Router();
// 上傳圖片到阿里云oss使用
var fs = require('fs');
// 初始化Client
var co = require('co');
var OSS = require('ali-oss');
var client = new OSS({
region: 'oss-cn-beijing',//填寫你開通的oss
accessKeyId: '****',
accessKeySecret: '****'
});
var ali_oss = {
bucket: '***', //阿里云您的bucket
endPoint: 'oss-cn-beijing.aliyuncs.com', //填寫你開通的oss地址
}
//圖片上傳
var multer = require('multer')
var upload = multer({ dest: './tmp/' })
router.post('/upload',upload.single('file'),function(req, res, next){
// 文件路徑
var filePath = './' + req.file.path;
// 文件類型
var temp = req.file.originalname.split('.');
var fileType = temp[temp.length - 1];
var lastName = '.' + fileType;
// 構(gòu)建圖片名
var fileName = Date.now() + lastName;
// 圖片重命名
fs.rename(filePath, fileName, (err) => {
if (err) {
res.json(JSON.stringify({status:'102',msg:'文件寫入失敗'}));
}else{
var localFile = './' + fileName;
var key = 'image/'+fileName;
// 阿里云 上傳文件
co(function* () {
client.useBucket(ali_oss.bucket);
var result = yield client.put(key, localFile);
//自定義使用域名訪問圖片鳄虱,(別忘記把域名解析至oss)
var imageSrc = 'http://***.com/' + result.name;
// 上傳之后刪除本地文件
fs.unlinkSync(localFile);
res.json(JSON.stringify({status:'100',msg:'上傳成功',imageUrl:imageSrc}));
}).catch(function (err) {
// 上傳之后刪除本地文件
fs.unlinkSync(localFile);
res.json(JSON.stringify({status:'101',msg:'上傳失敗',error:JSON.stringify(err)}));
});
}
});
})
module.exports = router; //暴露這個(gè) router模塊
五弟塞、域名解析
image.png
六、oss綁定域名
image.png