<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Go 開(kāi)源項(xiàng)目推薦:一個(gè)簡(jiǎn)單的 Go 練手項(xiàng)目

          共 1110字,需瀏覽 3分鐘

           ·

          2022-05-30 11:58

          閱讀本文大概需要 2?分鐘。

          大家好,我是 polarisxu。

          Go 語(yǔ)言中文網(wǎng)微信群時(shí)不時(shí)有人問(wèn),有沒(méi)有練手項(xiàng)目推薦。實(shí)話說(shuō),公眾號(hào)陸續(xù)推薦過(guò)不少,但大家更擅長(zhǎng)及時(shí)問(wèn),而不是找找。今天看到一個(gè)開(kāi)源項(xiàng)目,值得學(xué)習(xí)了 Go 語(yǔ)言,但沒(méi)有實(shí)戰(zhàn)過(guò)的人練練手。

          項(xiàng)目地址:https://github.com/cloudlena/s3manager,這是一個(gè) Web 項(xiàng)目,通過(guò) Web GUI 管理 S3 buckets。你可以基于這個(gè)項(xiàng)目開(kāi)發(fā)自己的管理阿里 buckets 或七牛 buckets 等。

          主要功能

          該項(xiàng)目實(shí)現(xiàn)了如下功能:

          • 列出你賬號(hào)的所有 buckets
          • 創(chuàng)建一個(gè)新的 bucket
          • 列出某個(gè) bucket 中的所有對(duì)象
          • 將新對(duì)象上傳到 bucket
          • 從 bucket 下載對(duì)象
          • 刪除 bucket 中的對(duì)象

          第三方依賴

          該項(xiàng)目主要使用了下面兩個(gè)第三方庫(kù):

          • github.com/gorilla/mux:沒(méi)有使用 net/http,而是使用了這個(gè)路由庫(kù),也沒(méi)有使用 gin、echo 之類(lèi)的框架
          • github.com/spf13/viper:配置管理庫(kù)。該項(xiàng)目的配置是通過(guò)環(huán)境變量設(shè)置的,環(huán)境變量通過(guò) viper 讀取

          此外,就是基于 S3 的 SDK。

          3、核心設(shè)計(jì)

          簡(jiǎn)單介紹下該項(xiàng)目的核心設(shè)計(jì)。

          1)前后端分離。

          API 接口使用 RESTful 風(fēng)格,例如:

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

          前端基于 jQuery。

          2)使用 Go1.16 的 embed

          靜態(tài)資源,包括模板和 css/js,通過(guò) embed 嵌入最終的二進(jìn)制文件中,使得編譯后只需一個(gè)二進(jìn)制文件即可運(yùn)行,部署方便。

          3編寫(xiě)了 Dockerfile

          方便通過(guò) Docker 部署。

          4、總結(jié)

          這個(gè)項(xiàng)目功能比較簡(jiǎn)單,作為練手比較合適。建議新手可以參照這個(gè)項(xiàng)目,申請(qǐng)一個(gè) S3 或國(guó)內(nèi)的對(duì)象存儲(chǔ),實(shí)現(xiàn)自己的一個(gè) bucket 管理系統(tǒng)。




          往期推薦


          我是 polarisxu,北大碩士畢業(yè),曾在 360 等知名互聯(lián)網(wǎng)公司工作,10多年技術(shù)研發(fā)與架構(gòu)經(jīng)驗(yàn)!2012 年接觸 Go 語(yǔ)言并創(chuàng)建了 Go 語(yǔ)言中文網(wǎng)!著有《Go語(yǔ)言編程之旅》、開(kāi)源圖書(shū)《Go語(yǔ)言標(biāo)準(zhǔn)庫(kù)》等。


          堅(jiān)持輸出技術(shù)(包括 Go、Rust 等技術(shù))、職場(chǎng)心得和創(chuàng)業(yè)感悟!歡迎關(guān)注「polarisxu」一起成長(zhǎng)!也歡迎加我微信好友交流:gopherstudio


          瀏覽 101
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  婷婷性爱| 韩国毛片久久 | 久久久久少妇 | 亚洲成人综合最新 | 91精品夂久久久久 |