Ready to release v 1.0.5

This commit is contained in:
zicla 2018-07-25 23:26:09 +08:00
parent 43a36b3701
commit 9e9e548026
19 changed files with 121 additions and 75 deletions

View File

@ -50,8 +50,13 @@ a. 执行`src/tank/build/pack/build.bat`脚本
b. 上传 tank-x.x.x.windows-x86_64.zip 到蓝眼云盘 b. 上传 tank-x.x.x.windows-x86_64.zip 到蓝眼云盘
c. 在github上发布新版本。 c. 在github上发布新版本。
2018-07-25
tank-1.0.5
1. 添加了根据url抓取文件的功能。
2018-07-03 2018-07-03
tank-1.0.3 tank-1.0.4
1. 添加了文件分段功能,支持断点续传。 1. 添加了文件分段功能,支持断点续传。

View File

@ -90,7 +90,7 @@ services:
# 蓝眼云盘的镜像信息 # 蓝眼云盘的镜像信息
# 依赖 mysql:5.7 的镜像 # 依赖 mysql:5.7 的镜像
tank: tank:
image: eyeblue/tank:1.0.4 image: eyeblue/tank:1.0.5
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.4 "/go/bin/tank" 20 minutes ago Up 13 seconds 0.0.0.0:6010->6010/tcp tank_tank_1 f5f64735fc53 eyeblue/tank:1.0.5 "/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.74d953fdc11832c5137c.js></script><script type=text/javascript src=/static/js/vendor.98c0538b97a360a7756e.js></script><script type=text/javascript src=/static/js/app.503db8fca94fab1c3688.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.14041cb0bdf05bb099089674600a3046.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=/static/js/manifest.94a3286175434e76ef85.js></script><script type=text/javascript src=/static/js/vendor.fd6fd2c2da583dfd7fae.js></script><script type=text/javascript src=/static/js/app.9b1a548547dba98d9234.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:"503db8fca94fab1c3688"}[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:"fd6fd2c2da583dfd7fae",1:"9b1a548547dba98d9234"}[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.74d953fdc11832c5137c.js.map //# sourceMappingURL=manifest.94a3286175434e76ef85.js.map

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

@ -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.4 set VERSION_NAME=tank-1.0.5
cd %GOPATH% cd %GOPATH%

View File

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

View File

@ -24,7 +24,7 @@ services:
# 蓝眼云盘的镜像信息 # 蓝眼云盘的镜像信息
# 依赖 mysql:5.7 的镜像 # 依赖 mysql:5.7 的镜像
tank: tank:
image: eyeblue/tank:1.0.3 image: eyeblue/tank:1.0.5
depends_on: depends_on:
- db - db
ports: ports:

View File

@ -6,6 +6,7 @@ import (
"regexp" "regexp"
"strconv" "strconv"
"time" "time"
"strings"
) )
type AlienController struct { type AlienController struct {
@ -52,6 +53,7 @@ func (this *AlienController) RegisterRoutes() map[string]func(writer http.Respon
routeMap["/api/alien/fetch/download/token"] = this.Wrap(this.FetchDownloadToken, USER_ROLE_GUEST) routeMap["/api/alien/fetch/download/token"] = this.Wrap(this.FetchDownloadToken, USER_ROLE_GUEST)
routeMap["/api/alien/confirm"] = this.Wrap(this.Confirm, USER_ROLE_GUEST) routeMap["/api/alien/confirm"] = this.Wrap(this.Confirm, USER_ROLE_GUEST)
routeMap["/api/alien/upload"] = this.Wrap(this.Upload, USER_ROLE_GUEST) routeMap["/api/alien/upload"] = this.Wrap(this.Upload, USER_ROLE_GUEST)
routeMap["/api/alien/crawl"] = this.Wrap(this.Crawl, USER_ROLE_GUEST)
return routeMap return routeMap
} }
@ -243,6 +245,45 @@ func (this *AlienController) Upload(writer http.ResponseWriter, request *http.Re
return this.Success(matter) return this.Success(matter)
} }
//给一个指定的url从该url中去拉取文件回来。
func (this *AlienController) Crawl(writer http.ResponseWriter, request *http.Request) *WebResult {
//允许跨域请求。
this.allowCORS(writer)
if request.Method == "OPTIONS" {
return this.Success("OK")
}
uploadTokenUuid := request.FormValue("uploadTokenUuid")
if uploadTokenUuid == "" {
panic("uploadTokenUuid必填")
}
uploadToken := this.uploadTokenDao.FindByUuid(uploadTokenUuid)
if uploadToken == nil {
panic("uploadTokenUuid无效")
}
if uploadToken.ExpireTime.Before(time.Now()) {
panic("uploadToken已失效")
}
user := this.userDao.CheckByUuid(uploadToken.UserUuid)
url := request.FormValue("url")
if url == "" || (!strings.HasPrefix(url, "http://") && !strings.HasPrefix(url, "https://")) {
panic("资源url必填并且应该以http://或者https://开头")
}
matter := this.matterService.Crawl(url, uploadToken.Filename, user, uploadToken.FolderUuid, uploadToken.Privacy)
//更新这个uploadToken的信息.
uploadToken.ExpireTime = time.Now()
this.uploadTokenDao.Save(uploadToken)
return this.Success(matter)
}
//系统中的用户x要获取一个DownloadToken用于提供给x信任的用户下载文件。 //系统中的用户x要获取一个DownloadToken用于提供给x信任的用户下载文件。
func (this *AlienController) FetchDownloadToken(writer http.ResponseWriter, request *http.Request) *WebResult { func (this *AlienController) FetchDownloadToken(writer http.ResponseWriter, request *http.Request) *WebResult {

View File

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