全域性靜態檔案

目錄結構

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

相關文件