# 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 文件。
## 联系我
 |
 |
| 关注微信公众号“开源螺丝钉”接收最新信息 |
加微信好友,拉入微信交流群 |