在线 Demo (体验账号: [email protected] 密码:123456)
蓝眼云盘是 蓝眼系列开源软件 之一,也是蓝眼系列其他软件的基础服务软件。蓝眼博客具有以下几大特色:
1. 软件体积小,跨平台,运行简单
蓝眼云盘[安装包](( https://github.com/eyebluecn/tank/releases)6M 左右,在windows
linux
mac OS
操作系统中均可安装运行;
蓝眼云盘为绿色软件,将安装包解压缩,修改配置文件后即可一行命令立即运行。
2. 使用方便,核心功能齐全
蓝眼云盘主要支持 pc web 端,同时手机 web 也具有不错的响应性支持。
蓝眼云盘提供能账号管理系统,超级管理员可以管理用户,查看用户文件,普通用户只能查看自己的文件,修改自己的资料。上面提供的体验账号就是一个普通用户的账号。
3. 支持接口编程
蓝眼云盘提供了编程接口,实现了云存储(如:七牛云,阿里云 OSS)的核心功能,可以使用编程接口上传文件,作为其他网站、系统、app 的资源存储器。可以在下载图片时对图片做缩放裁剪处理,可以有效地节省客户端流量。
蓝眼系列开源软件之二的《蓝眼博客》正是使用蓝眼博客作为第三方资源存储器。蓝眼博客中的所有图片,附件均是存储在蓝眼云盘中。
4. 前后端分离,文档丰富
项目后端使用 golang 开发,前端使用 vue 套件开发。
蓝眼云盘有详细的后台 api 文档,对于学习前端的童鞋而言可以快速部署一个正式而又具有丰富接口的后端供学习使用。
后端技术栈使用 golang
,没有使用任何 web 框架;初始化安装,生命周期控制,路由管理,路由匹配,日志管理,依赖注入,错误处理,panic 拦截,打包,安装脚本等功能全采用纯手动打造,绿色环保,因此代码更精炼,更具有探讨学习的价值。
如果您觉得蓝眼云盘对您有帮助,请不要吝惜您的 star
** a) 准备工作 **
一台 windows/linux 服务器,当然你可以使用自己的电脑充当这台服务器
在这里下载服务器对应的安装包
在服务器上解压缩,修改配置文件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": "[email protected]", //超级管理员密码 "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
) 可以看到登录页面,并且使用配置文件中的邮箱和密码登录成功后可以看到全部文件(见上文截图)即表示安装成功。
前端项目打包
clone tank-front
安装依赖项
npm install
npm run build
dist
文件夹下得到打包后的静态文件,将dist
目录下的所有文件拷贝到后端项目的build/html
文件夹下。(下文的工程目录中也有说明)后端项目打包
clone tank
安装 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 源代码
其中golang.org/x
国内无法下载,请从这里下载,并按上文推荐的目录结构放置。其余依赖项均可通过安装脚本自动下载。
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
利用得到的安装包即可参考上文的安装
一节进行安装。
感谢所有蓝眼云盘的贡献者 @zicla,@seaheart,@yemuhe,@hxsherry
如果您也想参与进来,请尽情的 fork, star, post issue, pull requests
Copyright (c) 2017-present, eyeblue.cn
注: 原文发布于蓝眼博客 http://blog.eyebluecn/home/article/8953d493-f80a-4be0-bde2-50d3c5747430
![]() | 1 zicla OP ![]() 为什么使用 golang 来开发?因为 golang 这几年上升特别快,正好也想用来练手一下;另一方面 golang 编译简单,最后就一个可执行文件,用于做软件分发太合适了。 |
![]() | 2 bubue 2018-01-16 13:40:20 +08:00 错误类的提示比如我上传了一个文件,等待过程中去其他 Tab 网页了,可能会看不到结果。 |
![]() | 5 zicla OP @bubue 因为这个是 demo 账号,我不能把上传限制放太大,否则我的服务器流量烧钱那个心痛啊。不过如果你自己部署一个蓝眼云盘的话,你可以对任何用户设置任何大小限制 ^_^ |
![]() | 6 FFLY 2018-01-16 14:59:59 +08:00 功能太少了,没法和 Nextcloud 这样的产品比。 |
![]() | 7 mokeyjay 2018-01-16 15:00:07 +08:00 看起来不错,开源项目都 应该滋糍一个 另外,已经被挂色情广告了/div> |
![]() | 10 zhengtu 2018-01-16 15:11:20 +08:00 每一款产品都有完善的过程,鼓励一下 |
![]() | 11 cy97cool 2018-01-16 15:12:29 +08:00 能不能提供个 Dockerfile 并 push 到 DockerHub,这样就只要一条 docker run 命令就部署好了 233333 |
![]() | 14 cy97cool 2018-01-16 15:15:34 +08:00 |
![]() | 15 zicla OP @cy97cool 大兄弟测试得很仔细啊。 对,还没有配置 https 证书; Content-Length 确实还没给出,在下一版中会 fix 这两个问题 |
16 jko123 2018-01-16 15:23:03 +08:00 via Android 手机体验不好 |
![]() | 21 zicla OP 这些来体验的小伙伴真的很皮,有一个上传色情图片的,有一个创建了十几层“新建文件夹” |
![]() | 22 cnbattle 2018-01-16 15:43:51 +08:00 via Android 收藏,有时间折腾了,正好也在学习 go |
![]() | 24 zachgenius 2018-01-16 16:21:22 +08:00 不错!!!1 |
![]() | 25 nealwx 2018-01-16 17:43:02 +08:00 咦, 怎么登不进了 |
![]() | 26 fyibmsd 2018-01-16 18:02:02 +08:00 离线下载有吗 |
![]() | 29 shawn7 2018-01-16 18:13:45 +08:00 via Android 赞,晚上回去体验一下 |
![]() | 30 Hallujah 2018-01-16 18:33:07 +08:00 via Android 看着挺好的,鼓励一下,加油。 |
33 SKull4 2018-01-16 19:29:01 +08:00 前排顶帖,支持爽哥 |
![]() | 34 natforum 2018-01-16 19:55:38 +08:00 呲磁 |
![]() | 36 Tink PRO 感觉挺好,极简至上 |
37 closedevice 2018-01-16 22:05:11 +08:00 我想知道怎么一个人搞定全平台的 |
![]() | 38 zicla OP @closedevice 目标是全栈工程师嘛,我打主力,还有三个小伙伴协作完成的。 |
![]() | 40 beiposhiming 2018-01-16 22:18:39 +08:00 via iPhone 不错! |
![]() | 41 yxisenx 2018-01-16 23:10:21 +08:00 via Android 安卓 7.0,Chrome63,文件名显示乱码 |
![]() | 42 zicla OP @yangbiaocc OK 先代你提一个 issue. |
![]() | 43 zuoshoufantexi 2018-01-16 23:37:17 +08:00 不错呀,有分享功能吗? |
![]() | 44 zicla OP @zuoshoufantexi 有分享功能,不过仅限于公有文件(任何人都能访问)和私有文件(仅上传者可以访问),没有做提取码这种功能。如果后面该功能需求大的话,可以考虑增强。 |
45 nciyuan 2018-01-16 23:50:08 +08:00 via Android 我说,这位,您可真是没用过 V2 吗,回复是扣积分的,签到的那点可怜的分就够你一个主题,回复时请一次把话说完整,然后一个帖子可以回复多人,先艾特,然后写内容,空一行,下一个 还有,建议您的 demo 服务器可以增加安全性,比如禁止修改密码,或者假改,于本贴发出之时密码错误无法登录 |
![]() | 46 majinjing3 2018-01-16 23:55:31 +08:00 via Android 已 star,支持,看起来不错 |
![]() | 47 zicla OP |
48 vefawn1 2018-01-17 03:23:09 +08:00 via Android 感觉挺不错的样子。 请楼主回答一下我两个问题: 1,是否支持自动同步备份文件功能? 2,网盘里的文件是否支持在线预览 /播放功能? |
![]() | 49 mengyaoss77 2018-01-17 11:16:33 +08:00 支持一下 |
![]() | 50 precisi0nux 2018-01-17 11:19:06 +08:00 非常棒,非常有学习价值,先 star 为敬。 |
![]() | 51 zicla OP @cy97cool Content-Length 的 Header 头目前已经加上了,可以预估下载时间啦。 @vefawn1 1.由于目前没有专门做 Android 和 iOS 端,都是统一的 web 端,因此就没有同步备份文件的功能。2. 目前没有在线预览的功能,如果是图片的话,直接点开浏览器会默认进行预览。 @mengyaoss77 @precisi0nux 多写支持。 |
52 hoythan 2018-01-17 14:24:02 +08:00 随便一试就出一个 bug 根目录全选文件后选择移动到一个已经被选中移动的文件夹内,直接全部消失,啥都没了。 |
![]() | 53 NotNil1 2018-01-17 17:44:56 +08:00 第一无法删除用户,说找不到 del 的 api ; 第二安装到 linux 首页白屏,没有反应,需要什么环境支持吗,我的服务器上没啥环境。 |
![]() | 54 zicla OP @hoythan 确实有移动到自己就看不到的 bug,我先记录到 issue 中,应该今明天就能 fix 好。 @ljtletters 第一个问题确实存在,原本是打算不能删除用户,只能禁用用户的,到后面这个功能做着做着就岔了,变成一会儿禁用一会儿删除了。我先记录到 issue 中,会尽快修复。第二个问题具体是怎样的?需要的环境就是一个 tank 安装包和一个 mysql 数据库就可以了。 |
![]() | 55 NotNil1 2018-01-18 10:36:46 +08:00 @zicla 第二个问题我的日志也纸打印了一条,没有报错,我指的环境比如 php 什么的,我的是 centos7,几乎没啥东西。 App started at http://localhost:80 |
![]() | 56 zicla OP @ljtletters 这里留言太贵了。。。你到 issue 中反馈这个问题,然后我帮你解决。 |
![]() | 57 longislet 2018-01-27 16:04:10 +08:00 源码被 WindowsDefender 报毒。 |
![]() | 58 longislet 2018-01-27 16:06:19 +08:00 报毒类型为 Trojan:Win32/Sprisky.U!cl |
![]() | 60 longislet 2018-01-29 10:05:26 +08:00 via Android @zicla 整个 zip 文件,把 zip 文件拉白后解压,发现所有 exe 都报毒...不知道巨硬怎么想的。 |
![]() | 61 zicla OP @cy97cool 特意告知,在你的建议后,认真研究 docker。目前 docker 功能目前已经支持了 这里是 docker 化的详细过程以及使用方法 https://blog.eyeblue.cn/home/article/510f9316-9ca1-40fe-b1b3-5285505a527d |
![]() | 62 iiusky 2019-01-18 10:33:59 +08:00 支持- -种子下载和离线下载就牛逼了 |