基于golang实现的一种分布式云存储服务
- master分支为最新提交的代码
如下:
go get github.com/garyburd/redigo/redis
go get github.com/go-sql-driver/mysql
go get github.com/garyburd/redigo/redis
go get github.com/json-iterator/go
go get github.com/aliyun/aliyun-oss-go-sdk/oss
go get gopkg.in/amz.v1/aws
go get gopkg.in/amz.v1/s3
go get github.com/streadway/amqp
其中如果有提示golang.org/x
相关的包无法下载的话,可以参考这篇文章:
国内下载golang.org/x/net
-
在加入rabbitMQ实现文件异步转移之前,启动方式:
- 启动上传应用程序:
# cd $GOPATH/<你的工程目录>
> cd $GOPATH/filestore-server
> go run main.go
-
在加入rabbitMQ实现文件异步转移阶段,启动方式(分裂成了两个独立程序):
- 启动上传应用程序:
# cd $GOPATH/<你的工程目录>
> cd $GOPATH/filestore-server
> go run service/upload/main.go
- 启动转移应用程序:
# cd $GOPATH/<你的工程目录>
> cd $GOPATH/filestore-server
> go run service/transfer/main.go
- 简单的文件上传服务
- mysql存储文件元数据
- 账号系统, 注册/登录/查询用户或文件数据
- 基于帐号的文件操作接口
- 文件秒传功能
- 文件分块上传/断点续传功能
- 搭建及使用Ceph对象存储集群
- 使用阿里云OSS对象存储服务
- 使用RabbitMQ实现异步任务队列
- 微服务化(API网关, 服务注册, RPC通讯)
- CI/CD(持续集成)