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>
Showing
3 changed files
with
197 additions
and
18 deletions
| ... | @@ -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 | ... | ... |
scripts/upload-to-qiniu.sh
0 → 100755
| 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 "$@" |
-
Please register or login to post a comment