项目简介
本项目是基于Golang实现的分布式云存储服务,具备文件上传、下载、存储、转移等功能。支持本地存储、Ceph分布式存储以及阿里云OSS对象存储服务,同时支持文件分块上传和断点续传。集成了API网关、微服务化、异步任务处理等功能,实现了高可用性、可扩展性和可维护性。
项目的主要特性和功能
- 文件操作:提供文件上传和下载功能,支持分块上传与断点续传。
- 分布式存储:支持本地存储、Ceph分布式存储以及阿里云OSS对象存储服务。
- 文件转移:能异步处理文件从本地转移到Ceph或OSS的任务。
- API网关:提供HTTP API接口,可用于文件上传、下载和转移等操作。
- 微服务化:采用微服务架构,实现服务注册、发现、通信等功能。
- 异步任务处理:使用RabbitMQ实现异步任务处理,提升系统性能。
安装使用步骤
假设用户已经下载了本项目的源码文件。
1. 安装手动库
shell
go get gopkg.in/amz.v1/aws
go get gopkg.in/amz.v1/s3
若有提示golang.org/x
相关的包无法下载,可参考国内下载golang.org/x/net。
2. 启动服务
加入rabbitMQ实现文件异步转移之前
启动上传应用程序: ```bash
cd $GOPATH/filestore-server go run main.go ```
加入rabbitMQ实现文件异步转移阶段
- 启动上传应用程序:
```bash
cd $GOPATH/filestore-server go run service/upload/main.go ```
- 启动转移应用程序:
```bash
cd $GOPATH/filestore-server go run service/transfer/main.go ```
微服务架构下(非容器化部署)
- 一键启动微服务:
```bash
cd $GOPATH/filestore-server ./service/start-all.sh ```
- 一键关闭微服务:
```bash
cd $GOPATH/filestore-server ./service/stop-all.sh ```
微服务架构下(容器化部署)
- 脚本方式启动容器:
```bash
cd $GOPATH/filestore-server ./deploy/start-all.sh ```
- 脚本方式关闭容器:
```bash
cd $GOPATH/filestore-server ./deploy/stop-all.sh ```
- docker-compose方式启动容器:
```bash
cd ./deploy/service_dc sudo docker-compose up -d ```
- k8s方式启动微服务:
```bash
cd ./deploy/service_k8s kubectl apply -f svc_account.yaml kubectl apply -f svc_apigw.yaml kubectl apply -f svc_dbproxy.yaml kubectl apply -f svc_download.yaml kubectl apply -f svc_transfer.yaml kubectl apply -f svc_upload.yaml cd ./deploy/traefik_k8s kubectl apply -f service-ingress.yaml ```
3. 测试功能
使用提供的测试代码或工具测试文件上传、下载、转移等功能。
4. 部署生产
根据实际需求,将服务部署到生产环境,并进行必要的监控和日志管理。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】