feat: ossutil 发布脚本(本地与 CI 共用)
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
# 判空:没配凭据时跳过(Phase 0 本地/未配 OSS 时不阻塞)
|
||||
if [ -z "${OSS_ACCESS_KEY_ID:-}" ] || [ -z "${OSS_BUCKET:-}" ]; then
|
||||
echo "[deploy-oss] 未配置 OSS 凭据,跳过同步。"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
: "${OSS_ACCESS_KEY_SECRET:?需 OSS_ACCESS_KEY_SECRET}"
|
||||
: "${OSS_ENDPOINT:?需 OSS_ENDPOINT}"
|
||||
: "${OSS_BUCKET:?需 OSS_BUCKET}"
|
||||
|
||||
DIST_DIR="${1:-dist}"
|
||||
[ -d "$DIST_DIR" ] || { echo "[deploy-oss] $DIST_DIR 不存在,请先 build"; exit 1; }
|
||||
|
||||
echo "[deploy-oss] 同步 $DIST_DIR → oss://$OSS_BUCKET/"
|
||||
ossutil sync "$DIST_DIR" "oss://$OSS_BUCKET/" \
|
||||
-i "$OSS_ACCESS_KEY_ID" \
|
||||
-k "$OSS_ACCESS_KEY_SECRET" \
|
||||
-e "$OSS_ENDPOINT" \
|
||||
--force --delete
|
||||
|
||||
echo "[deploy-oss] 刷新 CDN(如配了 CDN_DOMAIN)"
|
||||
if [ -n "${CDN_DOMAIN:-}" ]; then
|
||||
ossutil cdn refresh --dirs "https://${CDN_DOMAIN}/" \
|
||||
-i "$OSS_ACCESS_KEY_ID" -k "$OSS_ACCESS_KEY_SECRET" -e "$OSS_ENDPOINT" || true
|
||||
fi
|
||||
|
||||
echo "[deploy-oss] 完成"
|
||||
Reference in New Issue
Block a user