如何将 Astro 部署在对象存储上

admin 2024年11月6日19:35:18评论1 views字数 1806阅读6分1秒阅读模式

前言

最近重新调整了一下 Web,最初是 Hexo 框架,通过插件,将 Web 直接部署到腾讯 COS 上。后来看上了 Astro 框架,感觉不错,打算换个玩玩。不过在迁移找教程的时候,发现那些教程都是将代码托管到国外平台,我个人是不太喜欢国外平台那时不时犯病的网络,而 Astro 官方也没有适配国内环境的教程,那就自己写一个吧。

实现过程

在 Hexo 中可以装对应的腾讯 COS 插件,可以一键部署,但是我在 Astro 没找到类似的功能。

其实部署静态网站,最简单的方法就是先本地部署,生成一个 dist 文件夹,这个文件夹内就是生成静态网站源码。然后再将该文件夹放到对象存储里,对象存储开启静态网站,就能直接访问。不过这个方法不够优雅,而且对于我来说,有点麻烦了。后来看着 Github 发呆,突然想起来 Github 有个 Acitoon 可以自动化执行命令。那么这就简单了。把代码放 Github 上,然后设置 Aciton 代码,每次同步都会执行 Acition,把代码部署,传给对象存储。

Github 项目拉取

首先创建 Github 仓库,在"我的仓库"这里,创建新的仓库

如何将 Astro 部署在对象存储上

来到这里

如何将 Astro 部署在对象存储上

这里注意,我们不是要创建一个 Github Page 网站,而是单纯的一个代码仓库。新建好后,根据给的代码,把你的项目部署到仓库里。

如何将 Astro 部署在对象存储上

之后你的项目就会拉到 Github 上了

如何将 Astro 部署在对象存储上

对象存储设置

这里使用的是腾讯 COS。首先创建一个桶子

如何将 Astro 部署在对象存储上

创建后你会得到

  • • 桶名(BUCKET)

  • • 所属地域(REGION)

之后我们来到访问管理,找到 API 密钥管理

如何将 Astro 部署在对象存储上

创建一个密钥,这样我们就得到了

  • • 桶名

  • • 所属地域

  • • SecretId

  • • SecretKey

Github Action

在 Github仓库里找到设置,设置中我们可以设置 Acition 密钥

如何将 Astro 部署在对象存储上

我们新建这几个密钥

  • • BUCKET

  • • REGION

  • • SECRETID

  • • SECRETKEY

这一步的目的是避免下面 Action 脚本里出现明文密钥。我们之后点击 Action,创建一个新的工作流程

如何将 Astro 部署在对象存储上
如何将 Astro 部署在对象存储上

文件名随意,脚本这里我写了一个经过测试能用的

name: Upload to COS

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout code
        uses: actions/checkout@v2

      - name: Install Node.js
        uses: actions/setup-node@v2
        with:
          node-version: '20'

      - name: Install dependencies
        run: npm install

      - name: Build Astro project
        run: npm run build

      - name: Install coscmd
        run: sudo pip install coscmd

      - name: Configure coscmd
        env:
          SECRET_ID: ${{ secrets.SecretId }}
          SECRET_KEY: ${{ secrets.SecretKey }}
          BUCKET: ${{ secrets.BUCKET }}
          REGION: ${{ secrets.REGION }}
        run: coscmd config -a $SECRET_ID -s $SECRET_KEY -b $BUCKET -r $REGION

      - name: Upload to COS
        run: coscmd upload -r -f --delete ./dist/ / --ignore "./.git/*"

代码很简单,我这里是用 npm 去 bulid 项目,然后调用 coscmd 去把 dist 文件夹上传到对应的存储桶里。将代码粘贴上去后,保存,你就可以看到你的脚本开始运行了

如何将 Astro 部署在对象存储上

使用演示

我们在修改内容后,直接 VScode 推给 Github 就行

如何将 Astro 部署在对象存储上

然后在 Action 里就会有新的工作出现

如何将 Astro 部署在对象存储上

然后等着就可以啦。

原文始发于微信公众号(在下小白):如何将 Astro 部署在对象存储上

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年11月6日19:35:18
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   如何将 Astro 部署在对象存储上https://cn-sec.com/archives/3364718.html

发表评论

匿名网友 填写信息