74 lines
1.9 KiB
Bash
Executable File
74 lines
1.9 KiB
Bash
Executable File
#!/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 |