我開源了一個私人云盤——藍眼雲盤

藍眼軟體發表於2018-01-17

我開源了一個私人云盤——藍眼雲盤

藍眼雲盤

線上Demo (體驗賬號: demo@tank.eyeblue.cn 密碼:123456)

Github 後端tank地址

Github 前端tank-front地址

簡介

藍眼雲盤是 藍眼系列開源軟體 之一,也是藍眼系列其他軟體的基礎服務軟體。藍眼部落格具有以下幾大特色:

1. 軟體體積小,跨平臺,執行簡單

  • 藍眼雲盤安裝包6M左右,在windows linux mac OS作業系統中均可安裝執行;

  • 藍眼雲盤為綠色軟體,將安裝包解壓縮,修改配置檔案後即可一行命令立即執行。

2. 使用方便,核心功能齊全

  • 藍眼雲盤主要支援pc web端,同時手機web也具有不錯的響應性支援。

  • 藍眼雲盤實現了雲盤(如:百度雲盤微雲)的核心功能:資料夾管理,檔案管理,上傳檔案,下載檔案,檔案分享等。

  • 藍眼雲盤提供能賬號管理系統,超級管理員可以管理使用者,檢視使用者檔案,普通使用者只能檢視自己的檔案,修改自己的資料。上面提供的體驗賬號就是一個普通使用者的賬號。

3. 支援介面程式設計

  • 藍眼雲盤提供了程式設計介面,實現了雲端儲存(如:七牛雲阿里雲OSS)的核心功能,可以使用程式設計介面上傳檔案,作為其他網站、系統、app的資源儲存器。可以在下載圖片時對圖片做縮放裁剪處理,可以有效地節省客戶端流量。

  • 藍眼系列開源軟體之二的《藍眼部落格》正是使用藍眼部落格作為第三方資源儲存器。藍眼部落格中的所有圖片,附件均是儲存在藍眼雲盤中。

4. 前後端分離,文件豐富

  • 專案後端使用golang開發,前端使用vue套件開發。

  • 藍眼雲盤有詳細的後臺api文件,對於學習前端的童鞋而言可以快速部署一個正式而又具有豐富介面的後端供學習使用。

  • 後端技術棧使用 golang,沒有使用任何web框架;初始化安裝,生命週期控制,路由管理,路由匹配,日誌管理,依賴注入,錯誤處理,panic攔截,打包,安裝指令碼等功能全採用純手動打造,綠色環保,因此程式碼更精煉,更具有探討學習的價值。

如果您覺得藍眼雲盤對您有幫助,請不要吝惜您的star

軟體截圖

我開源了一個私人云盤——藍眼雲盤

我開源了一個私人云盤——藍眼雲盤

我開源了一個私人云盤——藍眼雲盤

安裝

** a) 準備工作 **

  1. 一臺windows/linux伺服器,當然你可以使用自己的電腦充當這臺伺服器

  2. 安裝好Mysql資料庫

  3. 在這裡下載伺服器對應的安裝包

  4. 在伺服器上解壓縮,修改配置檔案conf/tank.json,各項說明如下:

{
   //伺服器執行的埠,預設6010。如果配置為80,則可直接用http開啟
  "ServerPort": 6010,
  //日誌是否需要列印到控制檯,預設false,主要用於除錯
  "LogToConsole": false,
  //Mysql埠,預設3306
  "MysqlPort": 3306,
  //Mysql主機
  "MysqlHost": "127.0.0.1",
  //Mysql資料庫名稱
  "MysqlSchema": "tank",
  //Mysql使用者名稱,建議為藍眼雲盤建立一個使用者,不建議使用root
  "MysqlUserName": "tank",
  //Mysql密碼
  "MysqlPassword": "tank123",
  //超級管理員使用者名稱,只能是字母和數字
  "AdminUsername": "admin",
  //超級管理員郵箱,作為登入的賬號
  "AdminEmail": "admin@tank.eyeblue.cn",
  //超級管理員密碼
  "AdminPassword": "123456"
}

複製程式碼

** b) 執行 **

  • windows平臺直接雙擊應用目錄下的tank.exe

  • linux平臺執行

cd 應用目錄路徑
./tank
複製程式碼

如果你希望關閉shell視窗後,應用依然執行,請使用以下指令碼啟動和停止

# 啟動應用
cd 應用目錄路徑/service
./startup.sh

# 停止應用
cd 應用目錄路徑/service
./shutdown.sh

複製程式碼

** c) 驗證 **

瀏覽器中開啟 http://127.0.0.1:6010 (127.0.0.1請使用伺服器所在ip,6010請使用tank.json中配置的ServerPort) 可以看到登入頁面,並且使用配置檔案中的郵箱和密碼登入成功後可以看到全部檔案(見上文截圖)即表示安裝成功。

使用原始碼自行打包

前端專案打包

  1. clone tank-front

  2. 安裝依賴項

npm install
複製程式碼
  1. 執行打包命令
npm run build
複製程式碼
  1. 通過前面三步可以在dist資料夾下得到打包後的靜態檔案,將dist目錄下的所有檔案拷貝到後端專案的build/html資料夾下。(下文的工程目錄中也有說明)

後端專案打包

  1. clone tank

  2. 安裝Golang,環境變數GOPATH配置到工程目錄,建議工程目錄結構如下:

golang                       #環境變數GOPATH所在路徑
├── bin                      #編譯生成的可執行檔案目錄
├── pkg                      #編譯生成第三方庫
├── src                      #golang工程原始碼
│   ├── github.com           #來自github的第三方庫
│   ├── golang.org           #來自golang.org的第三方庫
│   ├── tank                 #clone下來的tank根目錄
│   │   ├── build            #用來輔助打包的資料夾
│   │   │   ├── conf         #預設的配置檔案
│   │   │   ├── doc          #文件
│   │   │   ├── html         #前端靜態資源,從專案tank-front編譯獲得
│   │   │   ├── pack         #打包的指令碼
│   │   │   ├── service      #將tank當作服務啟動的指令碼
│   │   ├── dist             #執行打包指令碼後獲得的安裝包目錄
│   │   ├── rest             #golang原始碼
      
複製程式碼
  1. 準備專案依賴的第三方庫
  • golang.org/x
  • github.com/disintegration/imaging
  • github.com/json-iterator/go
  • github.com/go-sql-driver/mysql
  • github.com/jinzhu/gorm
  • github.com/nu7hatch/gouuid

其中golang.org/x國內無法下載,請從這裡下載,並按上文推薦的目錄結構放置。其餘依賴項均可通過安裝指令碼自動下載。

  1. 打包
  • windows平臺雙擊執行 tank/build/pack/build.bat,成功之後可在tank/dist下看到tank-x.x.x資料夾,該資料夾即為最終安裝包。

  • linux平臺執行如下命令:

cd tank/build/pack/
./build.sh
複製程式碼

成功之後可在tank/dist下看到tank-x.x.x.linux-amd64.tar.gz

利用得到的安裝包即可參考上文的安裝一節進行安裝。

相關文件

藍眼雲盤後端api

藍眼雲盤程式設計介面

Contribution

感謝所有藍眼雲盤的貢獻者 @zicla@seaheart@yemuhe@hxsherry

如果您也想參與進來,請盡情的fork, star, post issue, pull requests

License

MIT

Copyright (c) 2017-present, eyeblue.cn

原文釋出於 blog.eyeblue.cn/home/articl…

相關文章