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-欢迎页开发计划 ...@@ -29,30 +29,28 @@ cd docs/plan/26.1.28-欢迎页开发计划
29 # 直接上传 29 # 直接上传
30 ./upload-welcome-video.sh 30 ./upload-welcome-video.sh
31 31
32 -# 使用代理上传 32 +# 注意: 七牛云空间名称为 ipadbiz
33 -USE_PROXY=true PROXY_HOST="127.0.0.1:7890" ./upload-welcome-video.sh
34 ``` 33 ```
35 34
36 **方式 2: 使用通用上传工具** 35 **方式 2: 使用通用上传工具**
37 36
38 ```bash 37 ```bash
39 -# 初始化七牛账户 (首次使用)
40 -pnpm run qiniu:init
41 -
42 # 上传视频 38 # 上传视频
43 pnpm run upload:qiniu video/welcome-bg.mp4 mlaj/video/welcome-bg.mp4 39 pnpm run upload:qiniu video/welcome-bg.mp4 mlaj/video/welcome-bg.mp4
44 -
45 -# 使用代理上传
46 -USE_PROXY=true pnpm run upload:qiniu video/welcome-bg.mp4 mlaj/video/welcome-bg.mp4
47 ``` 40 ```
48 41
49 -### 上传成功后的 URL 42 +### 上传成功后的 URL
50 43
51 ``` 44 ```
52 视频: https://cdn.ipadbiz.cn/mlaj/video/welcome-bg.mp4 45 视频: https://cdn.ipadbiz.cn/mlaj/video/welcome-bg.mp4
53 封面: https://cdn.ipadbiz.cn/mlaj/video/welcome-bg.mp4?vframe/jpg/offset/0.001 46 封面: https://cdn.ipadbiz.cn/mlaj/video/welcome-bg.mp4?vframe/jpg/offset/0.001
54 ``` 47 ```
55 48
49 +**文件信息:**
50 +- 大小: 17.57MB (18420585 字节)
51 +- Hash: lpipKorSMZBEVa-eCevwvcqkB8ZH
52 +- MIME: video/mp4
53 +
56 ### 更新环境变量 54 ### 更新环境变量
57 55
58 将以下配置添加到 `.env.development``.env.production`: 56 将以下配置添加到 `.env.development``.env.production`:
...@@ -68,7 +66,8 @@ VITE_WELCOME_VIDEO_URL=https://cdn.ipadbiz.cn/mlaj/video/welcome-bg.mp4 ...@@ -68,7 +66,8 @@ VITE_WELCOME_VIDEO_URL=https://cdn.ipadbiz.cn/mlaj/video/welcome-bg.mp4
68 66
69 ### ✅ 已完成 67 ### ✅ 已完成
70 - [x] 背景视频文件准备 (`welcome-bg.mp4`) 68 - [x] 背景视频文件准备 (`welcome-bg.mp4`)
71 -- [x] 上传工具脚本 (`upload-welcome-video.sh`) 69 +- [x] 视频上传到七牛云 ✅ (17.57MB, Hash: lpipKorSMZBEVa-eCevwvcqkB8ZH)
70 +- [x] 通用上传工具 (`scripts/upload-to-qiniu.sh`)
72 - [x] 详细实现计划 (`plan.md`) 71 - [x] 详细实现计划 (`plan.md`)
73 - [x] 头脑风暴文档 (`brainstorm.md`) 72 - [x] 头脑风暴文档 (`brainstorm.md`)
74 73
......
...@@ -62,7 +62,7 @@ mlaj/ ...@@ -62,7 +62,7 @@ mlaj/
62 ```json 62 ```json
63 { 63 {
64 "src_dir": "./assets/video", 64 "src_dir": "./assets/video",
65 - "bucket": "mlaj", 65 + "bucket": "ipadbiz",
66 "key_prefix": "mlaj/video/", 66 "key_prefix": "mlaj/video/",
67 "ignore_dir": false, 67 "ignore_dir": false,
68 "overwrite": true, 68 "overwrite": true,
...@@ -80,7 +80,7 @@ mlaj/ ...@@ -80,7 +80,7 @@ mlaj/
80 ```json 80 ```json
81 { 81 {
82 "src_dir": "./assets/images", 82 "src_dir": "./assets/images",
83 - "bucket": "mlaj", 83 + "bucket": "ipadbiz",
84 "key_prefix": "mlaj/images/", 84 "key_prefix": "mlaj/images/",
85 "ignore_dir": false, 85 "ignore_dir": false,
86 "overwrite": true, 86 "overwrite": true,
...@@ -122,16 +122,20 @@ chmod +x scripts/upload-to-qiniu.sh ...@@ -122,16 +122,20 @@ chmod +x scripts/upload-to-qiniu.sh
122 ./scripts/upload-to-qiniu.sh init 122 ./scripts/upload-to-qiniu.sh init
123 123
124 # 上传欢迎页背景视频 124 # 上传欢迎页背景视频
125 -USE_PROXY=true PROXY_HOST="127.0.0.1:7890" \ 125 +./scripts/upload-to-qiniu.sh video/welcome-bg.mp4 mlaj/video/welcome-bg.mp4
126 - ./scripts/upload-to-qiniu.sh video/welcome-bg.mp4 mlaj/video/welcome-bg.mp4
127 ``` 126 ```
128 127
129 -**上传成功后的 URL:** 128 +**上传成功后的 URL:** ✅ 已上传
130 ``` 129 ```
131 视频: https://cdn.ipadbiz.cn/mlaj/video/welcome-bg.mp4 130 视频: https://cdn.ipadbiz.cn/mlaj/video/welcome-bg.mp4
132 封面: https://cdn.ipadbiz.cn/mlaj/video/welcome-bg.mp4?vframe/jpg/offset/0.001 131 封面: https://cdn.ipadbiz.cn/mlaj/video/welcome-bg.mp4?vframe/jpg/offset/0.001
133 ``` 132 ```
134 133
134 +**文件信息:**
135 +- 大小: 17.57MB (18420585 字节)
136 +- Hash: lpipKorSMZBEVa-eCevwvcqkB8ZH
137 +- 上传时间: 1.23s
138 +
135 #### 步骤 5: 更新环境变量 139 #### 步骤 5: 更新环境变量
136 140
137 **`.env.development`:** 141 **`.env.development`:**
...@@ -176,7 +180,7 @@ set -euo pipefail ...@@ -176,7 +180,7 @@ set -euo pipefail
176 repo_root="$(cd "$(dirname "$0")/.." && pwd)" 180 repo_root="$(cd "$(dirname "$0")/.." && pwd)"
177 181
178 # 七牛配置 182 # 七牛配置
179 -QINIU_BUCKET="${QINIU_BUCKET:-mlaj}" 183 +QINIU_BUCKET="${QINIU_BUCKET:-ipadbiz}"
180 QINIU_CONFIG_DIR="$repo_root/scripts/qiniu" 184 QINIU_CONFIG_DIR="$repo_root/scripts/qiniu"
181 QINIU_ACCOUNT_CONF="account.json" 185 QINIU_ACCOUNT_CONF="account.json"
182 186
...@@ -293,7 +297,7 @@ show_help() { ...@@ -293,7 +297,7 @@ show_help() {
293 config_file 配置文件路径 297 config_file 配置文件路径
294 298
295 环境变量: 299 环境变量:
296 - QINIU_BUCKET 七牛空间名(默认: mlaj) 300 + QINIU_BUCKET 七牛空间名(默认: ipadbiz)
297 USE_PROXY=true 启用代理 301 USE_PROXY=true 启用代理
298 PROXY_HOST=127.0.0.1:7890 代理地址 302 PROXY_HOST=127.0.0.1:7890 代理地址
299 303
...@@ -310,7 +314,7 @@ show_help() { ...@@ -310,7 +314,7 @@ show_help() {
310 配置文件格式: 314 配置文件格式:
311 { 315 {
312 "src_dir": "./assets/video", 316 "src_dir": "./assets/video",
313 - "bucket": "mlaj", 317 + "bucket": "ipadbiz",
314 "key_prefix": "mlaj/video/", 318 "key_prefix": "mlaj/video/",
315 "overwrite": true, 319 "overwrite": true,
316 "check_exists": true 320 "check_exists": true
......
1 +#!/usr/bin/env bash
2 +# 通用七牛云上传工具 - mlaj 项目
3 +# 用法: ./scripts/upload-to-qiniu.sh <local_file> <remote_path>
4 +
5 +set -euo pipefail
6 +
7 +# 项目根目录
8 +repo_root="$(cd "$(dirname "$0")/.." && pwd)"
9 +
10 +# 七牛配置
11 +QINIU_BUCKET="${QINIU_BUCKET:-ipadbiz}"
12 +QINIU_CONFIG_DIR="$HOME/.qshell"
13 +QINIU_ACCOUNT_CONF="account.json"
14 +
15 +# 代理设置(可选)
16 +USE_PROXY=${USE_PROXY:-false}
17 +PROXY_HOST=${PROXY_HOST:-"127.0.0.1:7890"}
18 +
19 +log_info() {
20 + echo "[qiniu-upload] $1"
21 +}
22 +
23 +# 初始化 qshell 账户
24 +init_account() {
25 + if ! command -v qshell >/dev/null 2>&1; then
26 + echo "错误: 未检测到 qshell,请先安装 https://developer.qiniu.com/kodo/tools/1302/qshell"
27 + exit 1
28 + fi
29 +
30 + if [ ! -f "$QINIU_CONFIG_DIR/$QINIU_ACCOUNT_CONF" ]; then
31 + log_info "首次使用,请输入七牛云账号信息:"
32 + read -p "Access Key: " AK
33 + read -p "Secret Key: " SK
34 +
35 + qshell account "$AK" "$SK" > "$QINIU_CONFIG_DIR/$QINIU_ACCOUNT_CONF"
36 + log_info "账户信息已保存到 $QINIU_CONFIG_DIR/$QINIU_ACCOUNT_CONF"
37 + fi
38 +}
39 +
40 +# 单文件上传
41 +upload_single_file() {
42 + local local_file="$1"
43 + local remote_path="$2"
44 +
45 + # 转换为绝对路径
46 + if [[ ! "$local_file" = /* ]]; then
47 + local_file="$repo_root/$local_file"
48 + fi
49 +
50 + if [ ! -f "$local_file" ]; then
51 + echo "错误: 文件不存在 $local_file"
52 + exit 1
53 + fi
54 +
55 + local file_name=$(basename "$local_file")
56 +
57 + log_info "准备上传: $file_name"
58 + log_info "本地路径: $local_file"
59 + log_info "远程路径: $remote_path"
60 +
61 + # 设置代理
62 + if [ "$USE_PROXY" = "true" ]; then
63 + export HTTP_PROXY="http://$PROXY_HOST"
64 + export HTTPS_PROXY="http://$PROXY_HOST"
65 + log_info "使用代理: $PROXY_HOST"
66 + fi
67 +
68 + # 使用 rput 直接上传文件
69 + if qshell rput "$QINIU_BUCKET" "$remote_path" "$local_file" --overwrite=true; then
70 + log_info "✅ 上传成功: https://cdn.ipadbiz.cn/$remote_path"
71 + else
72 + echo "错误: 上传失败"
73 + exit 1
74 + fi
75 +}
76 +
77 +# 批量上传(使用配置文件)
78 +upload_batch() {
79 + local config_file="$1"
80 +
81 + if [ ! -f "$config_file" ]; then
82 + echo "错误: 配置文件不存在 $config_file"
83 + exit 1
84 + fi
85 +
86 + execute_upload "$config_file"
87 + log_info "✅ 批量上传完成"
88 +}
89 +
90 +# 执行上传(统一处理代理)
91 +execute_upload() {
92 + local config_file="$1"
93 +
94 + if [ "$USE_PROXY" = "true" ]; then
95 + export HTTP_PROXY="http://$PROXY_HOST"
96 + export HTTPS_PROXY="http://$PROXY_HOST"
97 + log_info "使用代理: $PROXY_HOST"
98 + fi
99 +
100 + qshell qupload "$config_file"
101 +}
102 +
103 +# 显示帮助信息
104 +show_help() {
105 + cat << EOF
106 +通用七牛云上传工具
107 +
108 +用法:
109 + $0 <local_file> <remote_path> 单文件上传
110 + $0 <config_file> 批量上传(指定配置文件)
111 + $0 init 初始化七牛账户
112 + $0 help 显示此帮助信息
113 +
114 +参数说明:
115 + local_file 本地文件路径(相对或绝对路径)
116 + remote_path 远程路径,如: mlaj/video/bg.mp4
117 + config_file 配置文件路径
118 +
119 +环境变量:
120 + QINIU_BUCKET 七牛空间名(默认: mlaj)
121 + USE_PROXY=true 启用代理
122 + PROXY_HOST=127.0.0.1:7890 代理地址
123 +
124 +示例:
125 + # 单文件上传
126 + $0 ./assets/video/bg.mp4 mlaj/video/welcome-bg.mp4
127 +
128 + # 批量上传
129 + $0 scripts/qiniu/configs/welcome-video.conf
130 +
131 + # 使用代理上传
132 + USE_PROXY=true $0 ./local/file.mp4 mlaj/video/file.mp4
133 +
134 +配置文件格式:
135 + {
136 + "src_dir": "./assets/video",
137 + "bucket": "mlaj",
138 + "key_prefix": "mlaj/video/",
139 + "overwrite": true,
140 + "check_exists": true
141 + }
142 +EOF
143 +}
144 +
145 +# 主逻辑
146 +main() {
147 + init_account
148 +
149 + case "${1:-}" in
150 + init)
151 + log_info "账户初始化完成"
152 + ;;
153 + help|--help|-h)
154 + show_help
155 + ;;
156 + "")
157 + show_help
158 + exit 1
159 + ;;
160 + *)
161 + if [ $# -eq 1 ]; then
162 + # 单个参数,视为配置文件
163 + upload_batch "$1"
164 + elif [ $# -eq 2 ]; then
165 + # 两个参数,单文件上传
166 + upload_single_file "$1" "$2"
167 + else
168 + echo "错误: 参数数量不正确"
169 + show_help
170 + exit 1
171 + fi
172 + ;;
173 + esac
174 +}
175 +
176 +main "$@"