hookehuyr

feat(qiniu): 上传欢迎页背景视频到七牛云

- 新增通用七牛云上传工具 scripts/upload-to-qiniu.sh
  * 支持单文件上传和批量上传
  * 支持代理配置
  * 使用 rput 命令直接上传,更简单可靠

- ✅ 成功上传 welcome-bg.mp4 (17.57MB)
  * URL: https://cdn.ipadbiz.cn/mlaj/video/welcome-bg.mp4
  * Hash: lpipKorSMZBEVa-eCevwvcqkB8ZH
  * 封面图自动生成: ?vframe/jpg/offset/0.001

- 更新文档:
  * 修正七牛云 Bucket 名称为 ipadbiz
  * 更新上传说明,移除代理相关配置(本次未使用)
  * 添加文件信息和上传验证

技术说明:
- 七牛云空间: ipadbiz
- CDN 域名: cdn.ipadbiz.cn
- 上传路径: mlaj/video/welcome-bg.mp4

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
......@@ -29,30 +29,28 @@ cd docs/plan/26.1.28-欢迎页开发计划
# 直接上传
./upload-welcome-video.sh
# 使用代理上传
USE_PROXY=true PROXY_HOST="127.0.0.1:7890" ./upload-welcome-video.sh
# 注意: 七牛云空间名称为 ipadbiz
```
**方式 2: 使用通用上传工具**
```bash
# 初始化七牛账户 (首次使用)
pnpm run qiniu:init
# 上传视频
pnpm run upload:qiniu video/welcome-bg.mp4 mlaj/video/welcome-bg.mp4
# 使用代理上传
USE_PROXY=true pnpm run upload:qiniu video/welcome-bg.mp4 mlaj/video/welcome-bg.mp4
```
### 上传成功后的 URL
### 上传成功后的 URL
```
视频: https://cdn.ipadbiz.cn/mlaj/video/welcome-bg.mp4
封面: https://cdn.ipadbiz.cn/mlaj/video/welcome-bg.mp4?vframe/jpg/offset/0.001
```
**文件信息:**
- 大小: 17.57MB (18420585 字节)
- Hash: lpipKorSMZBEVa-eCevwvcqkB8ZH
- MIME: video/mp4
### 更新环境变量
将以下配置添加到 `.env.development``.env.production`:
......@@ -68,7 +66,8 @@ VITE_WELCOME_VIDEO_URL=https://cdn.ipadbiz.cn/mlaj/video/welcome-bg.mp4
### ✅ 已完成
- [x] 背景视频文件准备 (`welcome-bg.mp4`)
- [x] 上传工具脚本 (`upload-welcome-video.sh`)
- [x] 视频上传到七牛云 ✅ (17.57MB, Hash: lpipKorSMZBEVa-eCevwvcqkB8ZH)
- [x] 通用上传工具 (`scripts/upload-to-qiniu.sh`)
- [x] 详细实现计划 (`plan.md`)
- [x] 头脑风暴文档 (`brainstorm.md`)
......
......@@ -62,7 +62,7 @@ mlaj/
```json
{
"src_dir": "./assets/video",
"bucket": "mlaj",
"bucket": "ipadbiz",
"key_prefix": "mlaj/video/",
"ignore_dir": false,
"overwrite": true,
......@@ -80,7 +80,7 @@ mlaj/
```json
{
"src_dir": "./assets/images",
"bucket": "mlaj",
"bucket": "ipadbiz",
"key_prefix": "mlaj/images/",
"ignore_dir": false,
"overwrite": true,
......@@ -122,16 +122,20 @@ chmod +x scripts/upload-to-qiniu.sh
./scripts/upload-to-qiniu.sh init
# 上传欢迎页背景视频
USE_PROXY=true PROXY_HOST="127.0.0.1:7890" \
./scripts/upload-to-qiniu.sh video/welcome-bg.mp4 mlaj/video/welcome-bg.mp4
./scripts/upload-to-qiniu.sh video/welcome-bg.mp4 mlaj/video/welcome-bg.mp4
```
**上传成功后的 URL:**
**上传成功后的 URL:** ✅ 已上传
```
视频: https://cdn.ipadbiz.cn/mlaj/video/welcome-bg.mp4
封面: https://cdn.ipadbiz.cn/mlaj/video/welcome-bg.mp4?vframe/jpg/offset/0.001
```
**文件信息:**
- 大小: 17.57MB (18420585 字节)
- Hash: lpipKorSMZBEVa-eCevwvcqkB8ZH
- 上传时间: 1.23s
#### 步骤 5: 更新环境变量
**`.env.development`:**
......@@ -176,7 +180,7 @@ set -euo pipefail
repo_root="$(cd "$(dirname "$0")/.." && pwd)"
# 七牛配置
QINIU_BUCKET="${QINIU_BUCKET:-mlaj}"
QINIU_BUCKET="${QINIU_BUCKET:-ipadbiz}"
QINIU_CONFIG_DIR="$repo_root/scripts/qiniu"
QINIU_ACCOUNT_CONF="account.json"
......@@ -293,7 +297,7 @@ show_help() {
config_file 配置文件路径
环境变量:
QINIU_BUCKET 七牛空间名(默认: mlaj)
QINIU_BUCKET 七牛空间名(默认: ipadbiz)
USE_PROXY=true 启用代理
PROXY_HOST=127.0.0.1:7890 代理地址
......@@ -310,7 +314,7 @@ show_help() {
配置文件格式:
{
"src_dir": "./assets/video",
"bucket": "mlaj",
"bucket": "ipadbiz",
"key_prefix": "mlaj/video/",
"overwrite": true,
"check_exists": true
......
#!/usr/bin/env bash
# 通用七牛云上传工具 - mlaj 项目
# 用法: ./scripts/upload-to-qiniu.sh <local_file> <remote_path>
set -euo pipefail
# 项目根目录
repo_root="$(cd "$(dirname "$0")/.." && pwd)"
# 七牛配置
QINIU_BUCKET="${QINIU_BUCKET:-ipadbiz}"
QINIU_CONFIG_DIR="$HOME/.qshell"
QINIU_ACCOUNT_CONF="account.json"
# 代理设置(可选)
USE_PROXY=${USE_PROXY:-false}
PROXY_HOST=${PROXY_HOST:-"127.0.0.1:7890"}
log_info() {
echo "[qiniu-upload] $1"
}
# 初始化 qshell 账户
init_account() {
if ! command -v qshell >/dev/null 2>&1; then
echo "错误: 未检测到 qshell,请先安装 https://developer.qiniu.com/kodo/tools/1302/qshell"
exit 1
fi
if [ ! -f "$QINIU_CONFIG_DIR/$QINIU_ACCOUNT_CONF" ]; then
log_info "首次使用,请输入七牛云账号信息:"
read -p "Access Key: " AK
read -p "Secret Key: " SK
qshell account "$AK" "$SK" > "$QINIU_CONFIG_DIR/$QINIU_ACCOUNT_CONF"
log_info "账户信息已保存到 $QINIU_CONFIG_DIR/$QINIU_ACCOUNT_CONF"
fi
}
# 单文件上传
upload_single_file() {
local local_file="$1"
local remote_path="$2"
# 转换为绝对路径
if [[ ! "$local_file" = /* ]]; then
local_file="$repo_root/$local_file"
fi
if [ ! -f "$local_file" ]; then
echo "错误: 文件不存在 $local_file"
exit 1
fi
local file_name=$(basename "$local_file")
log_info "准备上传: $file_name"
log_info "本地路径: $local_file"
log_info "远程路径: $remote_path"
# 设置代理
if [ "$USE_PROXY" = "true" ]; then
export HTTP_PROXY="http://$PROXY_HOST"
export HTTPS_PROXY="http://$PROXY_HOST"
log_info "使用代理: $PROXY_HOST"
fi
# 使用 rput 直接上传文件
if qshell rput "$QINIU_BUCKET" "$remote_path" "$local_file" --overwrite=true; then
log_info "✅ 上传成功: https://cdn.ipadbiz.cn/$remote_path"
else
echo "错误: 上传失败"
exit 1
fi
}
# 批量上传(使用配置文件)
upload_batch() {
local config_file="$1"
if [ ! -f "$config_file" ]; then
echo "错误: 配置文件不存在 $config_file"
exit 1
fi
execute_upload "$config_file"
log_info "✅ 批量上传完成"
}
# 执行上传(统一处理代理)
execute_upload() {
local config_file="$1"
if [ "$USE_PROXY" = "true" ]; then
export HTTP_PROXY="http://$PROXY_HOST"
export HTTPS_PROXY="http://$PROXY_HOST"
log_info "使用代理: $PROXY_HOST"
fi
qshell qupload "$config_file"
}
# 显示帮助信息
show_help() {
cat << EOF
通用七牛云上传工具
用法:
$0 <local_file> <remote_path> 单文件上传
$0 <config_file> 批量上传(指定配置文件)
$0 init 初始化七牛账户
$0 help 显示此帮助信息
参数说明:
local_file 本地文件路径(相对或绝对路径)
remote_path 远程路径,如: mlaj/video/bg.mp4
config_file 配置文件路径
环境变量:
QINIU_BUCKET 七牛空间名(默认: mlaj)
USE_PROXY=true 启用代理
PROXY_HOST=127.0.0.1:7890 代理地址
示例:
# 单文件上传
$0 ./assets/video/bg.mp4 mlaj/video/welcome-bg.mp4
# 批量上传
$0 scripts/qiniu/configs/welcome-video.conf
# 使用代理上传
USE_PROXY=true $0 ./local/file.mp4 mlaj/video/file.mp4
配置文件格式:
{
"src_dir": "./assets/video",
"bucket": "mlaj",
"key_prefix": "mlaj/video/",
"overwrite": true,
"check_exists": true
}
EOF
}
# 主逻辑
main() {
init_account
case "${1:-}" in
init)
log_info "账户初始化完成"
;;
help|--help|-h)
show_help
;;
"")
show_help
exit 1
;;
*)
if [ $# -eq 1 ]; then
# 单个参数,视为配置文件
upload_batch "$1"
elif [ $# -eq 2 ]; then
# 两个参数,单文件上传
upload_single_file "$1" "$2"
else
echo "错误: 参数数量不正确"
show_help
exit 1
fi
;;
esac
}
main "$@"