2b69686795
- 新增404页面,优化未找到页面体验,避免被搜索引擎索引 - 增加文件代理接口,隐藏真实文件服务器地址,支持文件请求代理 - 实现/article、/case、/product及/page动态路由兼容列表与详情展示 - 添加动态CMS页面兼容入口处理旧式路径,统一路由与SEO设置 - 新增模板1、模板7、模板2、模板3关于我们页面,实现多模板支持 - 模板增强支持CMS单页内容加载及SEO信息动态设置 - 配置环境变量及Git忽略文件规则辅助开发和构建环境管理
71 lines
2.9 KiB
Bash
Executable File
71 lines
2.9 KiB
Bash
Executable File
#!/bin/bash
|
||
# ============================================================================
|
||
# OSS 上传脚本(汇吉采官网 / 模板 07)
|
||
# 把本地图片上传到阿里云 OSS,打印可直接粘贴到后台的 URL
|
||
#
|
||
# 关键发现(2026-07-30 实测):
|
||
# /api/oss/upload 是 multipart 文件上传,必填:
|
||
# - Authorization: Bearer <token> (admin JWT)
|
||
# - tenantId: <租户ID> ← 最关键的请求头!缺它会报 "传参错误"
|
||
# - form 字段 file=@<图片> (application/octet-stream 也行,但 multipart 最稳)
|
||
# 其余 module/bizType/path 等字段都是可选的,不传也能成功。
|
||
# 返回 data.path / data.url 即访问地址(url 带 ?x-oss-process 缩略参数)。
|
||
#
|
||
# 用法:
|
||
# ADMIN_TOKEN="eyJ..." bash scripts/upload-to-oss.sh
|
||
# ============================================================================
|
||
|
||
set -e
|
||
|
||
# ===== 1. 配置 =====
|
||
ADMIN_TOKEN="${ADMIN_TOKEN:-}"
|
||
TENANT_ID="${TENANT_ID:-10626}" # 当前租户 10626(token 的 subject.tenantId)
|
||
UPLOAD_URL="https://server.websoft.top/api/oss/upload"
|
||
|
||
# 要上传的文件
|
||
FILES=(
|
||
"/Users/gxwebsoft/VUE/website-template/outputs/01-about-company-team.jpg"
|
||
"/Users/gxwebsoft/VUE/website-template/outputs/02-news-zoujinhuiicai-juyun.jpg"
|
||
)
|
||
|
||
# ===== 2. 校验 token =====
|
||
if [ -z "$ADMIN_TOKEN" ]; then
|
||
echo "❌ 请设置 ADMIN_TOKEN:"
|
||
echo " ADMIN_TOKEN=\"eyJ...\" bash scripts/upload-to-oss.sh"
|
||
echo " token 从 admin 后台 DevTools → Network → 任意 XHR → Request Headers → Authorization: Bearer xxx"
|
||
exit 1
|
||
fi
|
||
|
||
# ===== 3. 循环上传(tenantId 请求头是必填)=====
|
||
for f in "${FILES[@]}"; do
|
||
if [ ! -f "$f" ]; then
|
||
echo "⚠️ 文件不存在: $f"
|
||
continue
|
||
fi
|
||
echo ""
|
||
echo "📤 上传: $f"
|
||
resp=$(curl -sX POST "$UPLOAD_URL" \
|
||
-H "Authorization: Bearer $ADMIN_TOKEN" \
|
||
-H "tenantId: $TENANT_ID" \
|
||
-F "file=@${f};type=image/jpeg")
|
||
echo " 响应: $resp"
|
||
|
||
# 解析 URL(优先 data.url,其次 data.path)
|
||
url=$(echo "$resp" | sed -n 's/.*"url":"\([^"?]*\).*/\1/p' | head -1)
|
||
[ -z "$url" ] && url=$(echo "$resp" | sed -n 's/.*"path":"\([^"?]*\).*/\1/p' | head -1)
|
||
if [ -n "$url" ]; then
|
||
echo " ✅ 访问地址: $url"
|
||
else
|
||
echo " ⚠️ 未解析到 URL,上面是原始响应"
|
||
fi
|
||
done
|
||
|
||
echo ""
|
||
echo "============================================================"
|
||
echo "✅ 上传完成。URL 用法:"
|
||
echo " - 01-about-company-team.jpg → 关于我们右侧图"
|
||
echo " (后端无独立 aboutImage 字段,模板用 public/images/template-07/about.jpg 兜底;"
|
||
echo " 若要后台托管,需在站点配置加 aboutImage 字段并由前端读 siteInfo.config.aboutImage)"
|
||
echo " - 02-news-zoujinhuiicai-juyun.jpg → 最新动态首图:写到 cms-article.image 字段"
|
||
echo "============================================================"
|