Hexo一键部署到阿里oss

Hexo一键部署到阿里oss

首先上脚本

感谢zhaohan提供的脚本(有点小问题,我自己修复了一下)

const fs = require('fs')
const path = require('path')
const util = require('util')
const OSS = require('ali-oss')

const promisifyReaddir = util.promisify(fs.readdir)
const promisifyStat = util.promisify(fs.stat)

// 阿里 OSS access key 拥有对 OSS 的全部权限
const ALIOSSKEY = {
    key: '*****************',
    secret: '*****************'
}

const client = new OSS({
    // 请填写你的 Bucket 对应的 region
    region: 'oss-cn-shanghai',
    accessKeyId: ALIOSSKEY.key,
    accessKeySecret: ALIOSSKEY.secret,
    // 请填写对应的 Bucket 名字
    bucket: 'MewBucket'
})

const publicPath = path.resolve(__dirname, './public')



async function run(proPath = '') {
    const dir = await promisifyReaddir(`${publicPath}${proPath}`)

    for (let i = 0; i < dir.length; i++) {
        const stat = await promisifyStat(path.resolve(`${publicPath}${proPath}`, dir[i]))

        if (stat.isFile()) {
            const fileStream = fs.createReadStream(path.resolve(`${publicPath}${proPath}`, dir[i]))
            console.log(`上传文件: ${proPath}/${dir[i]}`)
            const result = await client.putStream(`${proPath}/${dir[i]}`, fileStream)
            console.log(result)
        } else if (stat.isDirectory()) {
            await run(`${proPath}/${dir[i]}`)
        }
    }
}

run()
  • 安装依赖 : npm i ali-oss
  • 新建该脚本放在你hexo项目的根目录下,和public同级
  • 该脚本有四个参数需要自己的配置(在你的oss控制台查):access key,access secret,region,Bucket
  • 然后修改根目录下的package.json文件
    • 找到"scripts": { ··· }这一行
    • 增加一个指令:"doss": "node ./doss.js" ,就像下面这样
  "scripts": {
    "build": "hexo generate && node ./move404.js",
    "clean": "hexo clean",
    "doss": "node ./doss.js",
    "deploy": "hexo deploy"
    "server": "hexo server",
  },
  • 然后直接运行 npm doss 就能直接把public下所有文件上传到你的bucket啦

另外由于oss的404页面也只能设置根目录下的文件,而hexo自动生成的404页面在一个文件夹里,每次自己手动移动的话不免显的太麻烦了

所以当然也要配置成自动的

  • 同理,根目录下新建一个脚本 move404.js
const fs = require('fs')
fs.writeFileSync('./public/404.html', fs.readFileSync('./public/404/index.html'));
  • 同上,还是在package.json里添加一个指令(或者把原来的指令修改成这样): "build": "hexo generate && node ./move404.js",
  • 运行npm build的时候也就自动的移动404.html啦

个人博客 mew.zone 分享各种干货,高清壁纸等,欢迎来访~

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值