一个功能完整的自动打包并上传到阿里云OSS的工具,支持GUI界面、命令行和定时任务三种使用方式。
- 📁 文件打包: 自动将指定目录打包成ZIP格式
- ☁️ OSS上传: 支持阿里云对象存储上传,包含大文件分片上传
- 🖥️ GUI界面: 直观的图形界面,支持配置管理和任务执行
- ⌨️ 命令行: 完整的CLI工具,支持脚本自动化
- ⏰ 定时任务: 支持间隔时间和Cron表达式的定时备份
- 🔧 配置管理: YAML配置文件,支持排除模式和路径自定义
- 📊 进度显示: 实时显示打包和上传进度
- 📝 详细日志: 完整的操作日志记录
pip install -r requirements.txtpython cli.py --init编辑 config.yaml 文件,填入您的OSS配置信息:
oss:
endpoint: 'https://oss-cn-hangzhou.aliyuncs.com'
access_key_id: '您的AccessKey ID'
access_key_secret: '您的AccessKey Secret'
bucket_name: '您的Bucket名称'
paths:
source_dir: '/path/to/your/data' # 要备份的目录
output_dir: './output' # 临时输出目录
oss_prefix: 'backups/' # OSS上的存储路径前缀python cli.py --test-oss启动图形界面:
python main.pyGUI版本提供了完整的配置管理界面,包括:
- 基础设置(源目录、输出目录、OSS前缀)
- OSS配置(访问凭证、Bucket设置)
- 定时任务配置(启用/禁用、间隔设置)
- 实时执行和日志查看
# 执行一次备份
python cli.py --execute
# 详细模式执行
python cli.py --execute --verbose
# 指定不同的源目录
python cli.py --execute --source /path/to/backup
# 使用不同的配置文件
python cli.py --config myconfig.yaml --execute# 创建默认配置文件
python cli.py --init
# 验证配置文件
python cli.py --validate
# 测试OSS连接
python cli.py --test-osspython scheduler.py --startpython scheduler.py --start --daemon# 安装服务(需要root权限)
sudo python scheduler.py --install-service
# 启动服务
sudo systemctl start oss-uploader
# 查看服务状态
sudo systemctl status oss-uploader
# 卸载服务
sudo python scheduler.py --uninstall-servicepython scheduler.py --run-once| 配置项 | 说明 | 示例 |
|---|---|---|
paths.source_dir |
要备份的源目录 | ./data |
paths.output_dir |
临时输出目录 | ./output |
paths.oss_prefix |
OSS存储路径前缀 | backups/ |
| 配置项 | 说明 | 示例 |
|---|---|---|
oss.endpoint |
OSS访问端点 | https://oss-cn-hangzhou.aliyuncs.com |
oss.access_key_id |
AccessKey ID | LTAI5t... |
oss.access_key_secret |
AccessKey Secret | xxx... |
oss.bucket_name |
Bucket名称 | my-backup-bucket |
在 compress.exclude_patterns 中配置要排除的文件和目录:
compress:
exclude_patterns:
- '*.log' # 排除所有.log文件
- '__pycache__' # 排除Python缓存目录
- '.git' # 排除Git目录
- 'node_modules' # 排除Node.js依赖schedule:
enabled: true
type: 'interval'
interval:
hours: 6 # 每6小时执行一次schedule:
enabled: true
type: 'cron'
cron:
hour: 2 # 每日凌晨2点执行
minute: 0oss_uploader/
├── CLAUDE.md # 项目规则文件
├── README.md # 项目文档
├── requirements.txt # Python依赖
├── config.yaml # 配置文件模板
├── main.py # GUI主程序
├── cli.py # 命令行程序
├── scheduler.py # 定时服务程序
└── core/ # 核心模块
├── __init__.py
├── config.py # 配置管理
├── packager.py # 文件打包
├── uploader.py # OSS上传
└── scheduler.py # 定时任务管理
oss2: 阿里云OSS SDKPyYAML: YAML配置文件解析APScheduler: 定时任务调度
A: 登录阿里云控制台 -> 访问控制RAM -> 用户管理 -> 创建用户并授予OSS权限,获取AccessKey ID和Secret。
A: 目前仅支持ZIP格式,后续版本会考虑支持TAR.GZ等格式。
A: 使用Cron模式,支持更复杂的定时表达式,如每周一执行、每月首日执行等。
A: 检查网络连接、OSS配置和权限设置,查看日志文件获取详细错误信息。
- Python 版本: 3.7+
- 开发框架: tkinter (GUI), argparse (CLI), APScheduler (定时任务)
- 测试环境: macOS, Linux, Windows
MIT License
欢迎提交Issue和Pull Request来改进这个项目。