Skip to content

使用OSS托管静态网站

对象存储服务OSS是一种云存储服务方式,对象存储服务已经成为云存储领域的主流服务之一,各大云服务提供商都提供了对象存储服务,如Amazon S3、Microsoft Azure Blob Storage、Google Cloud Storage等。它被广泛应用于媒体存储、数据备份、大数据存储、Web应用程序等领域。

对象存储服务时,多数需要缴纳一定的费用,但多数厂商对于新用户都有免费使用的优惠,如阿里云对新用户有免费使用政策。

使用流程

  1. 登录OSS管理控制台。单击Bucket列表,然后选择要开通静态页面的存储空间(Bucket)名称。
  2. 在左侧导航栏,选择数据管理 > 静态页面
  3. 静态页面,单击设置,将默认首页设置为index.html,子目录首页选择开通,其它参数根据需要设置。
  4. 使用合适的OSS管理工具(页面、图形或者命令行工具)上传静态页面到存储空间。
  5. 使用自定义域名或者默认域名访问首页。如果显示页面内容,即为成功。

如何自动上传文件

  1. 使用脚本配合命令行工具。例如:./ossutil64.exe sync g:/Users/yangjh/Desktop/repos/ oss://boos-yangjh/repos/ -u -j 200
  2. 使用Github Actions配合命令行工具实现自动上传

使用 Github Actions 配合命令行工具实现自动上传

使用OSS的静态页面托管服务时,需要人工或借助代码将文件复制或更新到存储空间,大多数情况下,不是很方便。因此,可借助于Github Actions服务,实现内容修改后自动化部署到OSS。

原理图如下:

flowchart LR
   A[本地内容] -- Git push --> B[Github 仓库] -- Github Actions --> C[OSS]

Actions的脚本可参考下面内容:

yml
name: deploy to aliyun oss

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      # 获取最新代码
      - uses: actions/checkout@v1
      # 设置阿里云OSS的 id/secret,存储到 github 的 secrets 中
      - name: setup aliyun oss
        uses: manyuanrong/setup-ossutil@master
        with:
          endpoint: oss-ap-southeast-1.aliyuncs.com
          access-key-id: ${{ secrets.OSS_KEY_ID }}
          access-key-secret: ${{ secrets.OSS_KEY_SECRET }}
      # 同步静态文件到aliyun OSS
      - name: cp files to aliyun
        run: ossutil sync website/docs/ oss://yangzh-cn/ -u --delete

这样,用户将内容推送到Github的仓库时,可出发Github Action运行指定脚本,进而实现自动化部署。

参考文献

  1. https://help.aliyun.com/document_detail/31872.html?spm=a2c4g.68218.0.0.614a4b78WII4Jb