使用 hugo 部署
使用 hugo deploy 命令將您的網站部署到 Amazon S3、Azure Blob Storage 或 Google Cloud Storage。
此功能需要 Hugo extended/deploy 版本。詳見 安裝 部分。
假設
-
您已完成 快速入門,或已准備好部署並分享您的 Hugo 網站。
-
您擁有要部署的服務提供商(AWS、Azure 或 Google Cloud)的賬戶。
-
您已完成身份驗證。
- AWS:安裝 CLI 並運行
aws configure。 - Azure:安裝 CLI 並運行
az login。 - Google Cloud:安裝 CLI 並運行
gcloud auth login。
每個服務支持多種身份驗證方法,包括環境變量。詳見 詳情。
- AWS:安裝 CLI 並運行
-
您已創建要部署到的存儲桶。如果您希望網站公開,請確保將存儲桶配置為靜態網站公開可讀。
配置
在您的 網站配置 中創建部署目標。唯一必需的參數是 name 和 url:
deployment:
targets:
- name: production
url: s3://my_bucket?region=us-west-1
[deployment]
[[deployment.targets]]
name = 'production'
url = 's3://my_bucket?region=us-west-1'
{
"deployment": {
"targets": [
{
"name": "production",
"url": "s3://my_bucket?region=us-west-1"
}
]
}
}
部署
要部署到目標:
hugo deploy [--target=<target name>]此命令將本地 public 目錄(默認發布目錄)的內容與目標存儲桶同步。如果未指定目標,Hugo 將部署到第一個配置的目標。
有關更多命令行選項,請參閱 hugo help deploy 或 CLI 文檔。
文件列表創建
hugo deploy 通過遍歷本地發布目錄和遠程存儲桶來創建本地和遠程文件列表。包含和排除由部署目標的 配置 確定:
include:默認跳過所有文件,除非匹配該模式。exclude:跳過匹配該模式的文件。
在創建本地文件列表期間,Hugo 會跳過 .DS_Store 文件和隱藏目錄(以句點開頭,如 .git),但 .well-known 目錄除外(如果存在則遍歷)。
文件列表比較
Hugo 比較本地和遠程文件列表以識別必要的更改。它首先比較文件名。如果兩者都存在,則比較大小和 MD5 校驗和。任何差異都會觸發重新上傳,並且本地不存在的遠程文件將被刪除。
由於 include/exclude 配置而被排除的遠程文件不會被刪除。
--force 標志強制所有文件重新上傳,即使 Hugo 未檢測到本地/遠程差異。
--confirm 或 --dryRun 標志使 Hugo 顯示檢測到的差異,然後暫停或停止。
同步
Hugo 將更改應用到遠程存儲桶:上傳缺失或更改的文件,並刪除本地不存在的遠程文件。上傳的文件頭根據匹配器配置在遠程配置。
為防止意外數據丟失,Hugo 默認不會刪除超過 256 個遠程文件。使用 --maxDeletes 標志可覆蓋此限制。
高級配置
請參閱 配置部署。