node.js上传图片到阿里云oss

一、开通阿里云oss
二、新建Bucket,创建accessKeyId和accessKeySecret

image.png

三、购买资源包
image.png

买一个储存包,一个下行流量包
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;
            // 构建图片名
            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;   //暴露这个 router模块

五、域名解析


image.png

六、oss绑定域名


image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 我是盼了多久,想了多久,无数次的幻想,无数次的想象,终于有了这一次的机会,这一次的时间,那是多么的来之不易,对我来...
    海素123阅读 236评论 0 1
  • 过去的几周用我的一位老师描述说,** “笑来啊,惊魂飞天”,**可能大家都有些关注哈,跟外界想象的并不相同,实际上...
    如何猫_今城阅读 496评论 0 1
  • 燕行是我在杭电的学长,读书的时候我们经常一起英语口语角。十几年过去了,他做了手工皂,脱离里电子这行,而我还在做电子...
    创业行者阅读 647评论 1 1
  • 今天要分享一首昨晚睡前看到的诗 它一直印在我的脑海中 “想象出来的路就能走吗?”自己目前就是在想象铺设自己的路,可...
    Skyy_阅读 322评论 0 1
  • 每日复盘 Objective 你对今天学的记得什么? 保持一颗积极乐观的心。 Reflective 一句话形容今天...
    露易司阅读 231评论 0 0