- 响应式项目首页 (Landing, 含 R2 APK 下载) + 路由 /home 调整 - OTA 升级: tauri-plugin-hotswap (lib.rs/main.rs 拆分, 客户端热替换) - OTA 服务端 (check/bundle/manifest-web) + build-ota/genkey/upload 脚本 - 密钥/凭据统一存配置中心 (signing + ota + cloudflare 分组) - Android CI (android-* 分支) + OTA CI (手动触发), 产物上传 R2 - 修复 tsc/构建阻塞问题
34 lines
1.3 KiB
Bash
34 lines
1.3 KiB
Bash
#!/usr/bin/env bash
|
|
# 把 APK 上传到 Cloudflare R2 (公开桶) via wrangler
|
|
# 用法: bash scripts/upload-r2.sh <APK_PATH> [OBJECT_KEY]
|
|
#
|
|
# 依赖环境变量 (通常来自配置注册中心 CommonExternalService / cloudflare):
|
|
# CF_API_TOKEN Cloudflare API token (r2/CF_API_TOKEN), wrangler 会从 token 自动解析账号 ID
|
|
# CF_R2_BUCKET (可选, 默认 store)
|
|
# CF_R2_PUBLIC_URL (可选, 默认 pub-98ee77ce79984c2cad0dc1c300901158.r2.dev, 仅用于打印下载地址)
|
|
#
|
|
# 说明: 与 kit 项目一致, 固定路径覆盖式上传, 保证有一个稳定的"最新"下载地址。
|
|
set -euo pipefail
|
|
|
|
APK_PATH="${1:?用法: bash scripts/upload-r2.sh <APK_PATH> [OBJECT_KEY]}"
|
|
OBJECT_KEY="${2:-data/android/$(basename "$APK_PATH")}"
|
|
|
|
: "${CF_API_TOKEN:?缺少 CF_API_TOKEN (注册中心 key: r2/CF_API_TOKEN)}"
|
|
export CLOUDFLARE_API_TOKEN="$CF_API_TOKEN"
|
|
|
|
BUCKET="${CF_R2_BUCKET:-store}"
|
|
CF_R2_PUBLIC_URL="${CF_R2_PUBLIC_URL:-https://pub-98ee77ce79984c2cad0dc1c300901158.r2.dev}"
|
|
|
|
if ! command -v wrangler >/dev/null 2>&1; then
|
|
echo "安装 wrangler ..."
|
|
npm i -g wrangler
|
|
fi
|
|
|
|
echo "上传到 R2: ${BUCKET}/${OBJECT_KEY}"
|
|
wrangler r2 object put "${BUCKET}/${OBJECT_KEY}" \
|
|
--file "$APK_PATH" \
|
|
--content-type application/vnd.android.package-archive \
|
|
--remote
|
|
|
|
echo "已上传."
|
|
echo "公共下载地址: ${CF_R2_PUBLIC_URL}/${OBJECT_KEY}" |