deploy.sh 1.2 KB

123456789101112131415161718192021222324252627
  1. #!/usr/bin/env bash
  2. # examples/hello-lit/deploy.sh —— 无构建部署:同步 src/ 到 OBS + CDN 刷新
  3. #
  4. # 凭据不写死在仓库:AK/SK 由既有部署脚本 / 环境变量提供。
  5. # 本脚本仅演示命令形态,实际发布请复用项目既有 deploy 脚本。
  6. set -euo pipefail
  7. PROJECT="${1:-hello-lit}"
  8. BUCKET="${OBS_BUCKET:?需设置 OBS_BUCKET,例如 obs://www-fmode.cn}"
  9. EP="${OBS_ENDPOINT:-obs.cn-south-1.myhuaweicloud.com}"
  10. OBS="${OBSUTIL:-/opt/data/bin/obsutil}"
  11. SRC="$(cd "$(dirname "$0")" && pwd)/src"
  12. echo "==> 同步 $SRC -> $BUCKET/$PROJECT/"
  13. # 1) index.html 先删后传(sync 按 size+mtime 判 Skip,index.html 内容常变)
  14. "$OBS" rm "$BUCKET/$PROJECT/index.html" -e="$EP" -f >/dev/null 2>&1 || true
  15. "$OBS" cp "$SRC/index.html" "$BUCKET/$PROJECT/index.html" \
  16. -e="$EP" -acl=public-read -f \
  17. -meta="Cache-Control:no-cache#Content-Type:text/html; charset=utf-8"
  18. # 2) 其余源码同步(无构建:src/ 即产物)
  19. "$OBS" sync "$SRC/" "$BUCKET/$PROJECT/" -e="$EP" -acl=public-read -f
  20. echo "==> 刷新 CDN(调用既有刷新脚本,凭据由该脚本/环境提供)"
  21. # node <既有刷新脚本> "https://<cdn-domain>/$PROJECT/"
  22. echo "完成。请确认 CDN 回退规则:不存在路径 200 返回 index.html(禁 302)。"