littlebot
Published on 2025-04-12 / 0 Visits
0

【源码】基于Golang的分布式云存储系统

项目简介

本项目是基于Golang实现的分布式云存储服务。采用微服务架构,包含上传服务、下载服务、数据库代理服务、消息队列服务和API网关等组件。各组件通过RPC通信,提供HTTP接口供前端或其他应用调用,支持通过HTTP、RPC以及消息队列进行文件的上传、下载、转移和管理等操作。

项目的主要特性和功能

  1. 文件上传与下载:支持大文件的分片上传和秒传功能,可通过HTTP接口或RPC调用实现。
  2. 文件转移:利用消息队列将文件从本地存储转移到Ceph或阿里云OSS等分布式存储。
  3. 数据库代理服务:提供与数据库交互的接口,用于用户管理和文件元数据管理。
  4. API网关:作为服务入口,处理前端的文件上传、下载等请求,并调用对应微服务。
  5. 消息队列:实现文件转移任务的异步处理,提升系统吞吐量和可扩展性。
  6. 文件元数据管理:支持文件哈希值的计算、存储和查询,以及文件的重命名、删除操作。

安装使用步骤

环境准备

确保已安装Golang环境,同时配置好Ceph集群或阿里云OSS等存储服务。手动安装所需库: shell go get gopkg.in/amz.v1/aws go get gopkg.in/amz.v1/s3 若提示golang.org/x相关的包无法下载,可参考国内下载golang.org/x/net

代码下载

从项目的Git仓库中下载源代码,若要获取不同阶段代码,可参考以下命令: - 下载master主分支(最新代码): bash git clone https://git.imooc.com/coding-323/filestore-server.git - 下载第九章(RabbitMQ异步存储)章节的代码(标签为v0.3的版本): bash git clone --branch v0.3 https://git.imooc.com/coding-323/filestore-server.git - 下载第八章(OSS)及之前章节的代码(标签为v0.2的版本): bash git clone --branch v0.2 https://git.imooc.com/coding-323/filestore-server.git

配置修改

依据项目中的配置文件(如config.go),修改连接数据库、消息队列和存储服务的参数。

启动服务

根据不同阶段和部署方式,选择相应的启动方式: - 加入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

测试

使用提供的测试脚本或工具对文件上传、下载和转移等功能进行测试。

注意:以上步骤仅为基本的安装使用指南,实际部署时可能需根据具体环境和需求进行调整与优化。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】