阅读本文大概需要 2 分钟。

Go 语言中文网微信群时不时有人问,有没有练手项目推荐。实话说,公众号陆续推荐过不少,但大家更擅长及时问,而不是找找。今天看到一个开源项目,值得学习了 Go 语言,但没有实战过的人练练手。

项目地址:https://github.com/cloudlena/s3manager,这是一个 Web 项目,通过 Web GUI 管理 S3 buckets。你可以基于这个项目开发自己的管理阿里 buckets 或七牛 buckets 等。

主要功能

该项目实现了如下功能:

  • 列出你账号的所有 buckets

  • 创建一个新的 bucket

  • 列出某个 bucket 中的所有对象

  • 将新对象上传到 bucket

  • 从 bucket 下载对象

  • 删除 bucket 中的对象

第三方依赖

该项目主要使用了下面两个第三方库:

  • github.com/gorilla/mux:没有使用 net/http,而是使用了这个路由库,也没有使用 gin、echo 之类的框架

  • github.com/spf13/viper:配置管理库。该项目的配置是通过环境变量设置的,环境变量通过 viper 读取

此外,就是基于 S3 的 SDK。

3、核心设计

简单介绍下该项目的核心设计。

1)前后端分离。

API 接口使用 RESTful 风格,例如:

r.Handle("/api/buckets/{bucketName}/objects", s3manager.HandleCreateObject(s3)).Methods(http.MethodPost)

前端基于 jQuery。

2)使用 Go1.16 的 embed

静态资源,包括模板和 css/js,通过 embed 嵌入最终的二进制文件中,使得编译后只需一个二进制文件即可运行,部署方便。

3编写了 Dockerfile

方便通过 Docker 部署。

4、总结

这个项目功能比较简单,作为练手比较合适。建议新手可以参照这个项目,申请一个 S3 或国内的对象存储,实现自己的一个 bucket 管理系统。


往期推荐

  • 苦于没有 Go 实战项目?也许本文的一些想法可以试试

推荐阅读:

常用限流算法的应用场景和实现原理

资料下载

点击下方卡片关注公众号,发送特定关键字获取对应精品资料!

  • 回复「电子书」,获取入门、进阶 Go 语言必看书籍。

  • 回复「视频」,获取价值 5000 大洋的视频资料,内含实战项目(不外传)!

  • 回复「路线」,获取最新版 Go 知识图谱及学习、成长路线图。

  • 回复「面试题」,获取四哥精编的 Go 语言面试题,含解析。

  • 回复「后台」,获取后台开发必看 10 本书籍。

对了,看完文章,记得点击下方的卡片。关注我哦~ 

Go 开源项目推荐:一个简单的 Go 练手项目相关推荐

  1. 推荐 Python 十大经典练手项目,让你的 Python 技能点全亮!

    前言:如果有人问:"Python还火吗?""当然,很火.""哪能火多久呢?""不知道." 技术发展到现在衍生出许多种编程 ...

  2. 推荐Python十大经典练手项目,让你的Python技能点全亮!

    前言:如果有人问:"Python还火吗?""当然,很火.""哪能火多久呢?""不知道." 技术发展到现在衍生出许多种编程 ...

  3. 推荐 9 个 GitHub 上练手项目(在线考试、仿美团、仿抖音、仿B站、仿头条...)

    GitHub项目推荐 推荐的这几个 GitHub 项目并不是简单的 XX 管理系统,我会从下面这些方向推荐几个入门级别但是不那么 Low 的项目. "我自己是一名从事了6年web前端开发的老 ...

  4. 推荐:26种NLP练手项目(代码+数据)

    1.分词 Word Segmentation chqiwang/convseg ,基于CNN做中文分词,提供数据和代码. 对应的论文Convolutional Neural Network with ...

  5. java 天猫项目_2018最新Java前后端练手项目【模仿天猫前端】

    我之前也一直在找这样的项目,准备作为毕业项目,找工作时候的谈资:贯穿整个java知识点的,用到ssh,或者ssm框架,这样就可以让自己对java有一个整体的,清晰的认识.什么OA人事管理系统,什么ER ...

  6. [C++练手项目] DocAnalysis

    [C++练手项目] DocAnalysis 文章目录 [C++练手项目] DocAnalysis 任务分析 编码 转换DOC文件到TXT 分词 停止词 两文档相同和不同字符数统计 总体实现思路 一.分 ...

  7. 【C语言】游戏开发:天天酷跑丨完美练手项目 [附源码]

    目录 一.项目说明: 二.项目作用 三.项目技术要求 四.库.宏.主函数说明 五.项目实现 5.1游戏背景的实现 5.2实现Hero奔跑 5.3 实现Hero跳跃 5.4 优化帧等待 5.6使用结构体 ...

  8. python新手项目-推荐:一个适合于Python新手的入门练手项目

    原标题:推荐:一个适合于Python新手的入门练手项目 随着人工智能的兴起,国内掀起了一股Python学习热潮,入门级编程语言,大多选择Python,有经验的程序员,也开始学习Python,正所谓是人 ...

  9. python新手小项目-推荐:一个适合于Python新手的入门练手项目

    随着人工智能的兴起,国内掀起了一股Python学习热潮,入门级编程语言,大多选择Python,有经验的程序员,也开始学习Python,正所谓是人生苦短,我用Python 有个Python入门练手项目, ...

最新文章

  1. Hololens Unity 开发入门 之 Hello HoloLens
  2. memcached图形界面的监控
  3. R语言ggplot2可视化散点图并使用scale_y_log10函数配置Y轴对数坐标、使用ggforce包的facet_zoom函数将可视化结果中需要突出放大的区域进行放大(Zoom in)
  4. 一个程序员是怎么被逼疯的?
  5. edge新版 能够正则式_Python爬虫七 数据提取之正则
  6. Tensorflow快餐教程(8) - 深度学习简史
  7. debian linux修改语言,Debian Linux系统下英文系统切换为中文
  8. 程序猿之歌 PHP,1024丨腾讯第一首程序员之歌【Code代码】
  9. MOV及MP4文件格式中几个重要的Table
  10. nginx 源码学习笔记(二十一)—— event 模块(二) ——事件驱动核心ngx_process_events_and_timers
  11. 与、或、短路或、自增、自减、的执行过程
  12. 【TypeError: float() argument must be a string or a number, not ‘map’】
  13. C - Insertion Sort Gym - 101955C(2018icpc沈阳/打表找规律)
  14. 前端_网页编程 Form表单与模板引擎(上)
  15. python时间处理,datetime中的strftime/strptime
  16. 高等数学第六版下册答案
  17. 财务数据图表分析,这些财务预算表模板免费用
  18. 【地球科学】使用USGS下载指定地区的遥感影像
  19. namecheap 添加二级域名
  20. 用好这28个工具,开发效率爆涨

热门文章

  1. 压缩ppt大小的方法
  2. 多语言 cocos 国家列表
  3. 3主3从redis集群扩缩容配置案例说明
  4. pip安装pytorch--cuda
  5. Debian - 搭建NextCloud私人云盘
  6. css文字过长显示...的几种方案
  7. 接口的基本语法与应用28,29
  8. Apache2.2+MySql5.5+PHP5.4的安装和配置(windows)
  9. 如何预防猪流感!猪流感!?会像SARS那样爆发吗?我们能作的就是预防。
  10. win10用hdmi线与电视连接了,但不显示的原因