全局静态文件

目录结构

|-- global_static_files/
  |-- global_static_files.yaml
  |-- files/
    |-- hello/
    |-- world/
    |-- test.html
    |-- ...

global_static_files.yaml 文件包含全局静态文件和目录的配置信息,而实际的文件内容存储在 files/ 目录下。

配置说明

每个静态文件或目录配置是一个包含以下参数的对象:

参数名数据类型是否必选描述
typestring类型,可以是 “file” 或 “dir”
pathstring文件或目录的路径
namestring文件或目录的名称
labelstring文件或目录的标签

配置示例

- type: dir
  path: dir1
  name: dir1
- type: dir
  path: dir2
  name: dir2
- type: dir
  path: dir1/dir12
  name: dir12
- type: file
  path: hello.html
  name: hello.html
- type: file
  path: dir1/setup.sh
  name: setup.sh
- type: file
  path: dir1/hello.html
  name: hello.html
- type: file
  path: dir1/stream.pcap
  name: stream.pcap
- type: archived
  path: dist.tar.gz

此配置定义了多个目录和文件,目录结构如下:

/
├── dir1/
│   ├── dir12/
│   ├── setup.sh
│   ├── hello.html
│   └── stream.pcap
├── dir2/
├── dist.tar.gz
└── hello.html

其中 archived类型(于 v1.2.72 版本中首次引入,仅支持 tar.gz 类型的压缩文件)的文件 dist.tar.gz,将会被解压然后上传到 Edge 的全局静态文件的根目录/中,您也可以放到其他目录,如 dir1/。 假设 dist.tar.gz 包含以下文件:

dist/
├── static/
├── index.html

那么最终上传到 OpenResty Edge 中文件结构将是:

/
├── dir1/
│   ├── dir12/
│   ├── setup.sh
│   ├── hello.html
│   └── stream.pcap
├── dir2/
├── dist/
│   ├── static/
│   ├── index.html
└── hello.html

可以看到,dist.tar.gz 已被解压。

使用示例

更新配置到 OpenResty Edge 中:

edge-config https://192.168.1.1 -s -t 2051e780-1897-4ea0-92b4-2c2f0169aa94 -l global_static_files -i /root/oredge-configs

从 OpenResty Edge 中导出配置:

edge-config -u https://192.168.1.1 -s -t 2051e780-1897-4ea0-92b4-2c2f0169aa94 -E -l global_static_files

示例中均使用 -l global_static_files 来指定只导入/导出全局静态文件相关的配置。

注意事项

  1. 全局静态文件是一个全局配置,为了保持与多个本地配置的兼容性,在更新配置时不会执行删除操作。

  2. 文件的实际内容存储在 global_static_files/files/ 目录下,目录结构应与配置中的 path 一致。

  3. 在导入配置时,工具会先检查配置的有效性,然后再执行添加或更新操作。

  4. 对于文件类型,工具会计算本地文件的 MD5 值,并与服务器上的文件进行比较。只有在内容发生变化时才会更新文件。

  5. 对于目录类型,如果目录不存在,工具会创建相应的目录。

  6. 在导出配置时,工具会将服务器上的文件内容下载到本地的 global_static_files/files/ 目录中。

  7. 配置文件 (global_static_files.yaml) 和实际文件内容是分开存储和管理的,这允许更灵活的版本控制和文件管理。

  8. 在更新配置时,只有在 global_static_files.yaml 中列出的文件和目录会被处理。服务器上存在但未在配置中列出的文件不会被自动删除。

相关文档