#!/bin/bash # 压缩并上传files目录到七牛云 # 需要环境变量: QINIU_ACCESS_KEY, QINIU_SECRET_KEY set -e # 检查环境变量 if [[ -z "$QINIU_ACCESS_KEY" ]] || [[ -z "$QINIU_SECRET_KEY" ]]; then echo "错误: 请设置环境变量 QINIU_ACCESS_KEY 和 QINIU_SECRET_KEY" exit 1 fi # 检查files目录是否存在 if [[ ! -d "files" ]]; then echo "错误: files目录不存在" exit 1 fi # 生成带时间戳的文件名 TIMESTAMP=$(date +"%Y%m%d_%H%M%S") ARCHIVE_NAME="files_${TIMESTAMP}.tar.xz" echo "正在压缩files目录(使用xz最高压缩)..." # 使用tar进行最大压缩 # -cJf: 创建xz压缩文件(最高压缩率) # --exclude: 排除不需要的文件 tar -cJf "$ARCHIVE_NAME" \ --exclude='._*' \ files/ # 获取压缩后的文件大小 FILE_SIZE=$(ls -lh "$ARCHIVE_NAME" | awk '{print $5}') echo "压缩完成: $ARCHIVE_NAME (大小: $FILE_SIZE)" # 文件已经使用xz压缩,无需额外处理 echo "" echo "正在上传到七牛云..." # 调用上传脚本 if [[ -f "./upload_to_qiniu.sh" ]]; then ./upload_to_qiniu.sh "$ARCHIVE_NAME" # 从临时文件读取下载地址 if [[ -f "/tmp/qiniu_upload_url.txt" ]]; then DOWNLOAD_URL=$(cat /tmp/qiniu_upload_url.txt) # 写入下载地址到files_download.txt echo "$DOWNLOAD_URL" > files_download.txt echo "" echo "==================================" echo "上传成功!" echo "文件名: $ARCHIVE_NAME" echo "下载地址已保存到: files_download.txt" echo "下载地址: $DOWNLOAD_URL" echo "==================================" # 清理临时文件 rm -f /tmp/qiniu_upload_url.txt else echo "警告: 无法获取下载地址" fi else echo "错误: upload_to_qiniu.sh 脚本不存在" exit 1 fi # 询问是否删除本地压缩文件 echo "remove $ARCHIVE_NAME" rm "$ARCHIVE_NAME" exit 0