全局静态文件
目录结构
|-- global_static_files/
|-- global_static_files.yaml
|-- files/
|-- hello/
|-- world/
|-- test.html
|-- ...
global_static_files.yaml
文件包含全局静态文件和目录的配置信息,而实际的文件内容存储在 files/
目录下。
配置说明
每个静态文件或目录配置是一个包含以下参数的对象:
参数名 | 数据类型 | 是否必选 | 描述 |
---|---|---|---|
type | string | 是 | 类型,可以是 “file” 或 “dir” |
path | string | 是 | 文件或目录的路径 |
name | string | 是 | 文件或目录的名称 |
label | string | 否 | 文件或目录的标签 |
配置示例
- 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
来指定只导入/导出全局静态文件相关的配置。
注意事项
全局静态文件是一个全局配置,为了保持与多个本地配置的兼容性,在更新配置时不会执行删除操作。
文件的实际内容存储在
global_static_files/files/
目录下,目录结构应与配置中的path
一致。在导入配置时,工具会先检查配置的有效性,然后再执行添加或更新操作。
对于文件类型,工具会计算本地文件的 MD5 值,并与服务器上的文件进行比较。只有在内容发生变化时才会更新文件。
对于目录类型,如果目录不存在,工具会创建相应的目录。
在导出配置时,工具会将服务器上的文件内容下载到本地的
global_static_files/files/
目录中。配置文件 (
global_static_files.yaml
) 和实际文件内容是分开存储和管理的,这允许更灵活的版本控制和文件管理。在更新配置时,只有在
global_static_files.yaml
中列出的文件和目录会被处理。服务器上存在但未在配置中列出的文件不会被自动删除。