#!/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] 完成"