# cloud-syncer **Repository Path**: xiyoufang/cloud-syncer ## Basic Information - **Project Name**: cloud-syncer - **Description**: cloud-syncer 是一款跨平台的文件同步工具,旨在将重要文件备份到阿里云 OSS 和 Amazon S3 等云存储服务。 - **Primary Language**: Go - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2024-09-10 - **Last Updated**: 2025-01-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 文件云同步工具 cloud-syncer ## 软件概述 传统的单机架构通常将重要数据直接存储在本地磁盘中,一旦服务器发生故障或硬件损坏,可能导致灾难性的数据丢失。 文件云同步工具**cloud-syncer** 通过提供跨平台的文件同步解决方案, 帮助将服务器上的文件备份到 **阿里云 OSS** 或 **Amazon S3**,确保您的关键数据得到保护。 该工具设计简单高效,适合各类需要备份数据的场景。 此外,软件还内置了一个网页界面,方便您查看同步日志和备份状态,确保备份过程的可见性和可追踪性。 ## 核心功能 - 跨平台支持:支持在 Linux、macOS、Windows 等主流操作系统上运行。 - 备份到一个云存储服务:可以在以下服务中选择一个进行备份: - 阿里云 OSS - Amazon S3 - 网页监控面板: - 跟踪并查看同步历史记录和日志。 - 查看文件大小、同步状态、时间戳和路径等元数据。 - 易于配置: - 通过简单的 YAML 文件定义同步设置,灵活易用。 ## 使用场景 - **单服务器网站:** 将重要的 Web 资源备份到云端,以防止服务器故障或硬件损坏造成的数据丢失。 - **文件服务器:** 定期将文件同步到云端,确保冗余存储。 - **数据库备份:** 开发人员可以通过脚本定期备份数据库到服务器特定目录,同步工具在将数据库备份同步到云端。 ## 构建步骤 Mac或者Linux系统按照如下步骤构建项目 1. 克隆项目仓库: ```shell git clone git@gitee.com:xiyoufang/cloud-syncer.git ``` 2. 构建项目 ```shell make -f Makefile build ``` 3. 构建多平台项目 ```shell make -f Makefile.cross-compiles build ``` ## 运行软件 使用`./cloud-syncer`运行软件. ### 可用命令: - config: 创建或更新配置文件。 首次使用软件时需要通过执行 `./cloud-syncer config` 初始化配置文件,并生成网站密码。 - password: 重置密码。 如果忘记了网站密码,通过执行`./cloud-syncer password` 重置密码。 - start: 启动同步工具。 Mac和Linux系统使用`nohup ./cloud-syncer_linux_amd64 start > /dev/null 2>&1 &`后台运行软件。 - version: 查看版本信息。 - help: 查看帮助信息。 ## 配置 通过 YAML 文件进行配置。您可以定义本地路径、选择阿里云 OSS 或 Amazon S3 作为存储服务,并配置相应的云存储凭证。 示例配置文件: ```yaml # 同步服务 syncer: oss # 同步配置 sync: paths: - local: /本地路径1 remote: 远程路径1/ - local: /本地路径2 remote: 远程路径2/ interval: 5 excludes: - .DS_Store # 网站服务的配置 http: enabled: true addr: 127.0.0.1 port: 9999 username: admin password: ${SYNCER_PASSWORD} secretKey: ${SYNCER_SECRET_KEY} sessionTimeout: 1800 # 亚马逊云S3的配置信息 s3: accessKeyId: ${S3_AWS_KEY_ID} secretAccessKey: ${S3_AWS_SECRET_KEY} region: ${S3_REGION} bucketName: ${S3_BUCKET_NAME} # 阿里云oss的配置信息 oss: accessKeyId: ${ALI_ACCESS_KEY_ID} secretAccessKey: ${ALI_ACCESS_KEY_SECRET} endpoint: ${ALI_OSS_ENDPOINT} bucketName: ${ALI_OSS_BUCKET_NAME} # 程序的数据库配置信息 db: driver: sqlite dataSource: cloud-syncer.db?cache=shared ``` ## 截图
## Release 使用`gorelaser`来release项目到github ### 验证命令 ```shell goreleaser release --snapshot --clean ``` ### 正式Release 1. 创建Tag ```shell git tag -a v1.0.0 -m "v1.0.0" git push origin v1.0.0 ``` 2. 执行`export GITHUB_TOKEN="YOUR_GH_TOKEN"`,`goreleaser release --clean` release到github ## 发展规划 - FTP/SFTP 支持:未来版本将添加对 FTP 和 SFTP 协议的支持。 - 多数据库支持: 未来版本将添加对 MySQL的支持,将同步日志和备份状态记录到MySQL中,方面用户自定义前端。 - 国际化支持: 添加英语翻译。 ## 贡献指南 欢迎贡献代码!如果遇到问题或有改进建议,您可以提交 Pull Request 或 Issue。 ## 许可证 本项目基于 MIT 许可证发布,详情见 LICENSE 文件。 ## 联系我
关注微信公众号“开源螺丝钉”接收最新信息 加微信好友,拉入微信交流群