Skip to content
liukk222Public

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VCP Save - 腾讯云COS自动备份清理工具

一个用Go语言编写的腾讯云对象存储(COS)自动备份和清理工具,支持定时备份本地文件/文件夹到COS,并自动清理过期的备份文件。

功能特性

  • 🔄 自动备份: 支持定时备份本地文件和文件夹到腾讯云COS
  • 📁 多路径支持: 支持同时备份多个文件/文件夹路径
  • 🗜️ 自动压缩: 文件夹自动压缩为ZIP格式后上传
  • 🧹 智能清理: 自动清理超过指定天数的备份文件
  • 🛡️ 白名单保护: 支持设置白名单保护重要文件不被清理
  • ⏰ 定时任务: 可配置清理时间,程序自动计算等待时间
  • 📝 详细日志: 提供详细的操作日志和错误信息
  • 🔄 循环运行: 程序持续运行,定期检查和执行任务

安装要求

  • Go 1.16 或更高版本
  • 腾讯云COS存储桶
  • 腾讯云访问密钥

安装步骤

  1. 克隆或下载项目代码
  2. 在项目目录中安装依赖:
go mod tidy
  1. 编译程序:
go build -o vcpsave.exe main.go

配置说明

在项目目录下创建 .env 文件,配置以下参数:

必需配置

# 腾讯云访问密钥
TENCENTCLOUD_SECRET_ID=your_secret_id
TENCENTCLOUD_SECRET_KEY=your_secret_key

# COS存储桶配置
COS_BUCKET_NAME=your_bucket_name
COS_REGION=ap-hongkong

# COS目标目录(可选,为空则存储在根目录)
COS_TARGET_DIR=backup

# 本地源路径(支持多个路径,用逗号分隔)
SOURCEFOLDER=H:\VCPToolBox,D:\Documents

清理配置

# 是否启用清理功能
CLEANUP_ENABLED=true

# 清理时间(24小时制格式:HH:MM)
CLEANUP_TIME=10:45

# 文件保留天数(超过此天数的文件将被清理)
CLEANUP_DAYS=7

# 白名单(逗号分隔,匹配文件名前缀)
CLEANUP_WHITELIST=important,critical

运行方式

直接运行

go run main.go

运行编译后的程序

./vcpsave

Windows后台运行

nohup ./vcpsave.exe > output.log 2>&1 &

文件命名规则

程序会为上传的文件添加时间戳,格式如下:

  • 文件:原文件名_YYYYMMDD_HHMMSS.扩展名
  • 文件夹:文件夹名_YYYYMMDD_HHMMSS.zip

例如:

  • document_20251021_104530.txt
  • VCPToolBox_20251021_104530.zip

清理机制

  1. 程序每天会在指定时间检查并执行清理任务
  2. 只清理程序自己上传的文件(通过文件名格式识别)
  3. 超过保留天数的文件会被自动删除
  4. 在白名单中的文件不会被删除
  5. 清理任务完成后,程序会等待1分钟重新计算下次清理时间

工作流程

  1. 程序启动时初始化COS客户端
  2. 确保目标目录存在
  3. 进入主循环:
    • 计算下次清理时间
    • 等待到清理时间
    • 执行备份操作
    • 执行清理操作
    • 等待1分钟后重新计算时间

注意事项

  1. 时间格式: 清理时间必须使用 HH:MM 格式,如 10:45
  2. 路径格式: Windows路径使用反斜杠 \,Linux/Mac使用正斜杠 /
  3. 多路径配置: 多个路径用逗号分隔,不要有空格
  4. 白名单匹配: 白名单匹配文件名前缀,不包含时间戳部分
  5. 权限要求: 确保腾讯云密钥有COS的读写权限
  6. 网络连接: 程序需要稳定的网络连接到腾讯云COS

故障排除

常见问题

  1. 密钥配置错误

    • 检查 .env 文件中的密钥是否正确
    • 确保密钥有COS访问权限
  2. 路径不存在

    • 检查 SOURCEFOLDER 中的路径是否存在
    • 确保程序有读取权限
  3. 清理时间格式错误

    • 确保使用 HH:MM 格式
    • 小时范围:00-23,分钟范围:00-59
  4. 网络连接问题

    • 检查网络连接
    • 确认COS存储桶地域配置正确

调试模式

程序会输出详细的日志信息,包括:

  • 当前时间和下次清理时间
  • 文件上传状态
  • 清理操作详情
  • 错误信息和警告

许可证

本项目采用 MIT 许可证。

贡献

欢迎提交 Issue 和 Pull Request 来改进这个项目。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages