Skip to content

一个基于 Go 语言实现的分布式云存储服务,慕课网实战仿百度网盘项目。

License

Notifications You must be signed in to change notification settings

blankjee/file-storage-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

file-storage-system

一个基于 Go 语言实现的分布式云存储服务,慕课网实战仿百度网盘项目。(如果觉得有用欢迎Star哦~)

安装库

如下:

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(持续集成)

参考资料

About

一个基于 Go 语言实现的分布式云存储服务,慕课网实战仿百度网盘项目。

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published