全域性靜態檔案
目錄結構
|-- 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
中列出的檔案和目錄會被處理。伺服器上存在但未在配置中列出的檔案不會被自動刪除。