博客一键上传到阿里云OSS

起因

​ 因为之前每次写文章都要登陆阿里云,手动上传文件比较繁琐,用提供的客户端老是需要重新输入密码,记住密码可能会弄丢,所以干脆用gulp写个上传的方法,命令一执行就可以实现一键生成压缩部署。

安装依赖

只需要安装ali-oss:

npm install ali-oss --save-dev

用到了node自带的fs模块

开始实现上传文件

  1. 遍历目录文件,将结果保存在fileList中。

    var fs = require('fs')
    var fileList = []
    function walk(path){
        var dirList = fs.readdirSync(path);
    
        dirList.forEach(function(item){
            if(fs.statSync(path + '/' + item).isFile()){
                fileList.push(path + '/' + item);
            }
        });
    
        dirList.forEach(function(item){
            if(fs.statSync(path + '/' + item).isDirectory()){
                walk(path + '/' + item);
            }
        });
    }
    
  2. 创建oss对象,具体参数参照官网。

    let OSS = require('ali-oss');
    let client = new OSS({
     region: 'XXXXX', //参数请参考官网
        accessKeyId: 'XXXXXXXXXXXXXX', //参数请参考官网
        accessKeySecret: 'XXXXXXXXXXXXXXX', //参数请参考官网
        bucket: 'XXXXXX' //参数请参考官网
    });
    
  3. 写同步上传函数

    async function put(uploadfile,localfile) {
        try {
          let result = await client.put(uploadfile, localfile);
          console.log(result);
          return true;
        } catch (e) {
          console.log(e);
        }
        return false;
    }
    
  4. 用gulp写上传任务

    gulp.task('upload', done=> {
        fileList = [];
        //调用文件遍历方法
        walk('./public');
        try
        {
            fileList.forEach((item,i)=> {
                let file = item.replace('./public/','');
                //调用文件上传方法
                let result = put(file,item);
                if(!result)
                {
                    throw new Error('上传文件失败');
                }
            });
        }catch(e)
        {
            console.log(e);
        }
        
        done();
    });	
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值