Files
novalon-website/scripts/deploy-cdn.sh
T
张翔 7a38eae6e0 chore: 删除e2e测试相关的初始化文件和快照文件
清理不再需要的测试初始化文件和视觉回归测试的快照文件,以保持代码库整洁
2026-03-27 09:56:57 +08:00

90 lines
2.8 KiB
Bash

#!/bin/bash
set -e
CDN_DOMAIN=${CDN_DOMAIN:-"https://cdn.novalon.cn"}
COS_BUCKET=${COS_BUCKET:-"novalon-cdn-1250000000"}
COS_REGION=${COS_REGION:-"ap-chengdu"}
DIST_DIR=${DIST_DIR:-"dist/static"}
STANDALONE_DIR=${STANDALONE_DIR:-"dist/standalone"}
echo "========================================="
echo "CDN静态资源部署脚本"
echo "========================================="
echo "CDN域名: $CDN_DOMAIN"
echo "COS存储桶: $COS_BUCKET"
echo "COS区域: $COS_REGION"
echo "静态资源目录: $DIST_DIR"
echo "========================================="
if [ ! -d "$DIST_DIR" ]; then
echo "错误: 静态资源目录不存在: $DIST_DIR"
echo "请先运行 npm run build 构建项目"
exit 1
fi
echo ""
echo "步骤1: 检查coscmd工具..."
if ! command -v coscmd &> /dev/null; then
echo "安装coscmd工具..."
pip install coscmd
fi
echo ""
echo "步骤2: 配置coscmd..."
if [ -z "$COS_SECRET_ID" ] || [ -z "$COS_SECRET_KEY" ]; then
echo "错误: 请设置环境变量 COS_SECRET_ID 和 COS_SECRET_KEY"
echo "可以在腾讯云控制台 > 访问管理 > API密钥管理中获取"
exit 1
fi
coscmd config -a "$COS_SECRET_ID" -s "$COS_SECRET_KEY" -b "$COS_BUCKET" -r "$COS_REGION"
echo ""
echo "步骤3: 上传静态资源到COS..."
echo "上传 _next/static/ 目录..."
coscmd upload -r "$DIST_DIR" /_next/static/ --sync --delete
echo ""
echo "步骤4: 上传public目录中的静态资源..."
if [ -d "public" ]; then
echo "上传 public/ 目录..."
coscmd upload -r public/ / --sync
fi
echo ""
echo "步骤5: 设置COS对象缓存策略..."
echo "为静态资源设置长期缓存 (1年)..."
coscmd set-meta "_next/static/*" "Cache-Control: public, max-age=31536000, immutable" -r
echo ""
echo "步骤6: 刷新CDN缓存..."
if [ -n "$CDN_DOMAIN" ]; then
CDN_DOMAIN_CLEAN=$(echo "$CDN_DOMAIN" | sed 's|https://||' | sed 's|http://||')
echo "刷新CDN域名: $CDN_DOMAIN_CLEAN"
if command -v tccli &> /dev/null; then
tccli cdn PurgePathsCache --Paths '["https://'"$CDN_DOMAIN_CLEAN"'/_next/static/"]' --FlushType flush
echo "CDN缓存刷新请求已提交"
else
echo "提示: 未安装tccli工具,请手动在腾讯云控制台刷新CDN缓存"
echo "刷新路径: https://$CDN_DOMAIN_CLEAN/_next/static/"
fi
fi
echo ""
echo "========================================="
echo "部署完成!"
echo "========================================="
echo "静态资源已上传到: https://$COS_BUCKET.cos.$COS_REGION.myqcloud.com"
echo "CDN加速域名: $CDN_DOMAIN"
echo ""
echo "后续步骤:"
echo "1. 在腾讯云CDN控制台配置加速域名: cdn.novalon.cn"
echo "2. 设置源站为COS存储桶: $COS_BUCKET.cos.$COS_REGION.myqcloud.com"
echo "3. 配置HTTPS证书"
echo "4. 测试CDN加速效果"
echo "========================================="