Release version 1.0.3

This commit is contained in:
zicla 2018-04-12 19:57:35 +08:00
parent a1f168b298
commit bffc45535d
14 changed files with 71 additions and 31 deletions

View File

@ -21,6 +21,44 @@
6. readme.md 修改 eyeblue/tank:1.0.2 6. readme.md 修改 eyeblue/tank:1.0.2
eyeblue/tank:x.x.x eyeblue/tank:x.x.x
## 新版本发布流程
1.docker版本的发布。[参考](https://blog.eyeblue.cn/home/article/510f9316-9ca1-40fe-b1b3-5285505a527d)
```
cd tank根目录
# 停止旧版本,并删除旧版本
docker container stop xxx
docker container prune
# 构建新版本 (最后的.不能少)
docker build -t eyeblue/tank:x.x.x .
# 本地测试
docker-compose up -d
# 没问题后,推送到远程
docker push eyeblue/tank:x.x.x
```
2.linux版本的发布。
a. 执行`src/tank/build/pack/build.sh`脚本
b. 上传 tank-x.x.x.linux-amd64.tar.gz 到蓝眼云盘
c. 在github上发布新版本。
3.windows版本发布
a. 执行`src/tank/build/pack/build.bat`脚本
b. 上传 tank-x.x.x.windows-x86_64.zip 到蓝眼云盘
c. 在github上发布新版本。
2018-04-12
tank-1.0.3
1. 添加了多文件同时上传的功能.
2. 开发情况下有可能上传的文件路径没有权限,添加了更多提示.
2018-01-19 2018-01-19
tank-1.0.2 tank-1.0.2
1. 修复了下载时无法估算文件大小的bugheader头重添加了Content-Type. [#2](https://github.com/eyebluecn/tank/issues/2) 1. 修复了下载时无法估算文件大小的bugheader头重添加了Content-Type. [#2](https://github.com/eyebluecn/tank/issues/2)

View File

@ -90,7 +90,7 @@ services:
# 蓝眼云盘的镜像信息 # 蓝眼云盘的镜像信息
# 依赖 mysql:5.7 的镜像 # 依赖 mysql:5.7 的镜像
tank: tank:
image: eyeblue/tank:1.0.2 image: eyeblue/tank:1.0.3
depends_on: depends_on:
- db - db
ports: ports:
@ -145,7 +145,7 @@ $ docker-compose stop
$ docker container ls $ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f5f64735fc53 eyeblue/tank:1.0.2 "/go/bin/tank" 20 minutes ago Up 13 seconds 0.0.0.0:6010->6010/tcp tank_tank_1 f5f64735fc53 eyeblue/tank:1.0.3 "/go/bin/tank" 20 minutes ago Up 13 seconds 0.0.0.0:6010->6010/tcp tank_tank_1
3a859cad3e7e mysql:5.7 "docker-entrypoint.s…" 20 minutes ago Up 14 seconds 3306/tcp tank_db_1 3a859cad3e7e mysql:5.7 "docker-entrypoint.s…" 20 minutes ago Up 14 seconds 3306/tcp tank_db_1
$ docker container stop f5 $ docker container stop f5

View File

@ -1 +1 @@
<!DOCTYPE html><html><head><title>蓝眼云盘</title><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge,chrome=1"><meta name=renderer content=webkit><meta name=viewport content="user-scalable=no,width=device-width,initial-scale=1,maximum-scale=1"><meta name=msapplication-tap-highlight content=no><meta name=apple-mobile-web-app-capable content=yes><link rel="shortcut icon" href=/favicon.ico><link href=/static/css/app.e67bf66a3b64f1b45ec496faae765128.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=/static/js/manifest.d1c45733b853efcc663e.js></script><script type=text/javascript src=/static/js/vendor.98c0538b97a360a7756e.js></script><script type=text/javascript src=/static/js/app.92616146a617842e8ca0.js></script></body></html> <!DOCTYPE html><html><head><title>蓝眼云盘</title><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge,chrome=1"><meta name=renderer content=webkit><meta name=viewport content="user-scalable=no,width=device-width,initial-scale=1,maximum-scale=1"><meta name=msapplication-tap-highlight content=no><meta name=apple-mobile-web-app-capable content=yes><link rel="shortcut icon" href=/favicon.ico><link href=/static/css/app.e67bf66a3b64f1b45ec496faae765128.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=/static/js/manifest.14ebb9ba186cfb370de8.js></script><script type=text/javascript src=/static/js/vendor.98c0538b97a360a7756e.js></script><script type=text/javascript src=/static/js/app.e46a0879c96ff6b3a58e.js></script></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,2 +1,2 @@
!function(e){function __webpack_require__(r){if(_[r])return _[r].exports;var t=_[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,__webpack_require__),t.l=!0,t.exports}var r=window.webpackJsonp;window.webpackJsonp=function(_,n,o){for(var c,a,i,u=0,p=[];u<_.length;u++)a=_[u],t[a]&&p.push(t[a][0]),t[a]=0;for(c in n)Object.prototype.hasOwnProperty.call(n,c)&&(e[c]=n[c]);for(r&&r(_,n,o);p.length;)p.shift()();if(o)for(u=0;u<o.length;u++)i=__webpack_require__(__webpack_require__.s=o[u]);return i};var _={},t={2:0};__webpack_require__.e=function(e){function onScriptComplete(){o.onerror=o.onload=null,clearTimeout(c);var r=t[e];0!==r&&(r&&r[1](new Error("Loading chunk "+e+" failed.")),t[e]=void 0)}var r=t[e];if(0===r)return new Promise(function(e){e()});if(r)return r[2];var _=new Promise(function(_,n){r=t[e]=[_,n]});r[2]=_;var n=document.getElementsByTagName("head")[0],o=document.createElement("script");o.type="text/javascript",o.charset="utf-8",o.async=!0,o.timeout=12e4,__webpack_require__.nc&&o.setAttribute("nonce",__webpack_require__.nc),o.src=__webpack_require__.p+"static/js/"+e+"."+{0:"98c0538b97a360a7756e",1:"92616146a617842e8ca0"}[e]+".js";var c=setTimeout(onScriptComplete,12e4);return o.onerror=o.onload=onScriptComplete,n.appendChild(o),_},__webpack_require__.m=e,__webpack_require__.c=_,__webpack_require__.d=function(exports,e,r){__webpack_require__.o(exports,e)||Object.defineProperty(exports,e,{configurable:!1,enumerable:!0,get:r})},__webpack_require__.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return __webpack_require__.d(r,"a",r),r},__webpack_require__.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},__webpack_require__.p="/",__webpack_require__.oe=function(e){throw console.error(e),e}}([]); !function(e){function __webpack_require__(r){if(_[r])return _[r].exports;var t=_[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,__webpack_require__),t.l=!0,t.exports}var r=window.webpackJsonp;window.webpackJsonp=function(_,n,o){for(var c,a,i,u=0,p=[];u<_.length;u++)a=_[u],t[a]&&p.push(t[a][0]),t[a]=0;for(c in n)Object.prototype.hasOwnProperty.call(n,c)&&(e[c]=n[c]);for(r&&r(_,n,o);p.length;)p.shift()();if(o)for(u=0;u<o.length;u++)i=__webpack_require__(__webpack_require__.s=o[u]);return i};var _={},t={2:0};__webpack_require__.e=function(e){function onScriptComplete(){o.onerror=o.onload=null,clearTimeout(c);var r=t[e];0!==r&&(r&&r[1](new Error("Loading chunk "+e+" failed.")),t[e]=void 0)}var r=t[e];if(0===r)return new Promise(function(e){e()});if(r)return r[2];var _=new Promise(function(_,n){r=t[e]=[_,n]});r[2]=_;var n=document.getElementsByTagName("head")[0],o=document.createElement("script");o.type="text/javascript",o.charset="utf-8",o.async=!0,o.timeout=12e4,__webpack_require__.nc&&o.setAttribute("nonce",__webpack_require__.nc),o.src=__webpack_require__.p+"static/js/"+e+"."+{0:"98c0538b97a360a7756e",1:"e46a0879c96ff6b3a58e"}[e]+".js";var c=setTimeout(onScriptComplete,12e4);return o.onerror=o.onload=onScriptComplete,n.appendChild(o),_},__webpack_require__.m=e,__webpack_require__.c=_,__webpack_require__.d=function(exports,e,r){__webpack_require__.o(exports,e)||Object.defineProperty(exports,e,{configurable:!1,enumerable:!0,get:r})},__webpack_require__.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return __webpack_require__.d(r,"a",r),r},__webpack_require__.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},__webpack_require__.p="/",__webpack_require__.oe=function(e){throw console.error(e),e}}([]);
//# sourceMappingURL=manifest.d1c45733b853efcc663e.js.map //# sourceMappingURL=manifest.14ebb9ba186cfb370de8.js.map

View File

@ -16,7 +16,7 @@ if "%GOPATH%"=="" (
set PRE_DIR=%cd% set PRE_DIR=%cd%
@rem version name @rem version name
set VERSION_NAME=tank-1.0.2 set VERSION_NAME=tank-1.0.3
cd %GOPATH% cd %GOPATH%

View File

@ -8,7 +8,7 @@ fi
PRE_DIR=$(pwd) PRE_DIR=$(pwd)
VERSION_NAME=tank-1.0.2 VERSION_NAME=tank-1.0.3
FINAL_NAME=$VERSION_NAME.linux-amd64.tar.gz FINAL_NAME=$VERSION_NAME.linux-amd64.tar.gz
cd $GOPATH cd $GOPATH

View File

@ -1,13 +1,16 @@
#docker-compose版本这里的3不要动 #docker-compose版本这里的2不要动
version: "3" version: "2"
services: services:
# 数据库的镜像信息 # 数据库的镜像信息
# 使用mysql:5.7的镜像 # 使用mysql:5.7的镜像
db: db:
image: mysql:5.7 image: mysql:5.7
ports:
# 端口映射关系,宿主机端口:镜像端口
- "13306:3306"
volumes: volumes:
# 数据库文件存放在宿主机的`~/data/mysql`位置,如果宿主机目录不存在,则会自动创建 # 数据库文件存放在宿主机的`~/data/mysql`位置,如果宿主机目录不存在,则会自动创建。这里最好不要使用相对路径。
- ~/data/mysql:/var/lib/mysql - ~/data/mysql:/var/lib/mysql
# 如果启动失败,则总是会重启。因为镜像有依赖的情况,不停重启可以保证依赖项启动成功后自己再运行 # 如果启动失败,则总是会重启。因为镜像有依赖的情况,不停重启可以保证依赖项启动成功后自己再运行
restart: always restart: always
@ -21,7 +24,7 @@ services:
# 蓝眼云盘的镜像信息 # 蓝眼云盘的镜像信息
# 依赖 mysql:5.7 的镜像 # 依赖 mysql:5.7 的镜像
tank: tank:
image: eyeblue/tank:1.0.2 image: eyeblue/tank:1.0.3
depends_on: depends_on:
- db - db
ports: ports:
@ -47,7 +50,7 @@ services:
# 超级管理员密码,作为登录密码 # 超级管理员密码,作为登录密码
TANK_ADMIN_PASSWORD: 123456 TANK_ADMIN_PASSWORD: 123456
volumes: volumes:
# 日志文件存放在宿主机的`~/data/eyeblue/tank/log`位置,如果宿主机目录不存在,则会自动创建 # 日志文件存放在宿主机的`~/data/eyeblue/tank/log`位置,如果宿主机目录不存在,则会自动创建。这里最好不要使用相对路径。
- ~/data/eyeblue/tank/log:/data/log - ~/data/eyeblue/tank/log:/data/log
# 上传文件存放在宿主机的`~/data/eyeblue/tank/matter`位置,如果宿主机目录不存在,则会自动创建 # 上传文件存放在宿主机的`~/data/eyeblue/tank/matter`位置,如果宿主机目录不存在,则会自动创建。这里最好不要使用相对路径。
- ~/data/eyeblue/tank/matter:/data/matter - ~/data/eyeblue/tank/matter:/data/matter

View File

@ -20,7 +20,7 @@ const (
TABLE_PREFIX = "tank10_" TABLE_PREFIX = "tank10_"
//当前版本 //当前版本
VERSION = "1.0.2" VERSION = "1.0.3"
) )
/* /*

View File

@ -58,7 +58,7 @@ func MakeDirAll(dirPath string) string {
panic("判断文件是否存在时出错!") panic("判断文件是否存在时出错!")
} }
if !exists { if !exists {
err = os.MkdirAll(dirPath, 0666) err = os.MkdirAll(dirPath, 0777)
if err != nil { if err != nil {
panic("创建文件夹时出错!") panic("创建文件夹时出错!")
} }
@ -67,7 +67,6 @@ func MakeDirAll(dirPath string) string {
return dirPath return dirPath
} }
//获取配置文件存放的位置 //获取配置文件存放的位置
//例如C:\Users\lishuang\AppData\Local\Temp/conf //例如C:\Users\lishuang\AppData\Local\Temp/conf
func GetConfPath() string { func GetConfPath() string {
@ -79,7 +78,7 @@ func GetConfPath() string {
panic("判断日志文件夹是否存在时出错!") panic("判断日志文件夹是否存在时出错!")
} }
if !exists { if !exists {
err = os.MkdirAll(filePath, 0666) err = os.MkdirAll(filePath, 0777)
if err != nil { if err != nil {
panic("创建日志文件夹时出错!") panic("创建日志文件夹时出错!")
} }
@ -103,7 +102,7 @@ func GetUserFilePath(username string) (string, string) {
exists, err := PathExists(absolutePath) exists, err := PathExists(absolutePath)
if err != nil { if err != nil {
panic("判断上传文件是否存在时出错!") panic("判断上传文件是否存在时出错!请检查文件夹 " + filePath + " 的访问权限。")
} }
if !exists { if !exists {
err = os.MkdirAll(absolutePath, 0777) err = os.MkdirAll(absolutePath, 0777)