diff --git a/alidrive/auth.go b/alidrive/auth.go index 10eb61cf74f..46e0514ec5b 100644 --- a/alidrive/auth.go +++ b/alidrive/auth.go @@ -12,7 +12,7 @@ func TokenLogin() (*TokenLoginResp, error) { log.Infof("尝试使用token登录...") url:="https://auth.aliyundrive.com/v2/oauth/token_login" req:=TokenLoginReq{Token:conf.Conf.AliDrive.LoginToken} - log.Debugf("token_login_req:%v",req) + log.Debugf("token_login_req:%+v",req) var tokenLogin TokenLoginResp if body, err := DoPost(url, req,false); err != nil { log.Errorf("tokenLogin-doPost出错:%s",err.Error()) diff --git a/alidrive/request.go b/alidrive/request.go index 10b96f4ac89..c680d03e74e 100644 --- a/alidrive/request.go +++ b/alidrive/request.go @@ -146,7 +146,7 @@ func DoPost(url string,request interface{},auth bool) (body []byte, err error) { log.Errorf("创建requestBody出错:%s",err.Error()) } req,err:=http.NewRequest("POST",url,requestBody) - log.Debugf("do_post_req:%v",req) + log.Debugf("do_post_req:%+v",req) if err != nil { log.Errorf("创建request出错:%s",err.Error()) return diff --git a/bootstrap/alidrive.go b/bootstrap/alidrive.go index 0da8318daa3..dde49effeba 100644 --- a/bootstrap/alidrive.go +++ b/bootstrap/alidrive.go @@ -24,13 +24,13 @@ func InitAliDrive() bool { }else { conf.Authorization=conf.Bearer+conf.Conf.AliDrive.AccessToken } - log.Infof("token:%s",conf.Authorization) + log.Debugf("token:%s",conf.Authorization) user,err:=alidrive.GetUserInfo() if err != nil { log.Errorf("初始化用户失败:%s",err.Error()) return false } - log.Infof("当前用户信息:%v",user) + log.Infof("当前用户信息:%+v",user) alidrive.User=user return true } diff --git a/bootstrap/cmd.go b/bootstrap/cmd.go index 28c9e7bc615..35472a3648a 100644 --- a/bootstrap/cmd.go +++ b/bootstrap/cmd.go @@ -39,6 +39,7 @@ func printASC() { func start() { InitLog() printASC() + CheckUpdate() if !ReadConf(conf.Con) { log.Errorf("读取配置文件时出现错误,启动失败.") return diff --git a/bootstrap/config.go b/bootstrap/config.go index 30b9a37c8fd..ab69dc474c2 100644 --- a/bootstrap/config.go +++ b/bootstrap/config.go @@ -24,6 +24,6 @@ func ReadConf(config string) bool { log.Errorf("加载配置文件时发生错误:%s",err.Error()) return false } - log.Debugf("config:%v",conf.Conf) + log.Debugf("config:%+v",conf.Conf) return true } \ No newline at end of file diff --git a/bootstrap/update.go b/bootstrap/update.go new file mode 100644 index 00000000000..e4832ddbcc0 --- /dev/null +++ b/bootstrap/update.go @@ -0,0 +1,41 @@ +package bootstrap + +import ( + "encoding/json" + "github.com/Xhofe/alist/conf" + log "github.com/sirupsen/logrus" + "io/ioutil" + "net/http" +) + +type GithubRelease struct { + TagName string `json:"tag_name"` + HtmlUrl string `json:"html_url"` + Body string `json:"body"` +} + +func CheckUpdate() { + url:="https://api.github.com/repos/Xhofe/alist/releases/latest" + resp,err:=http.Get(url) + if err!=nil { + log.Warnf("检查更新失败:%s",err.Error()) + return + } + body,err:=ioutil.ReadAll(resp.Body) + if err!=nil { + log.Warnf("读取更新内容失败:%s",err.Error()) + return + } + var release GithubRelease + err = json.Unmarshal(body,&release) + if err!=nil { + log.Warnf("解析更新失败:%s",err.Error()) + return + } + if conf.VERSION == release.TagName { + log.Infof("当前已是最新版本:%s",release.TagName) + }else { + log.Infof("发现新版本:%s",release.TagName) + log.Infof("请至'%s'获取更新.",release.HtmlUrl) + } +} \ No newline at end of file diff --git a/conf.yml.example b/conf.yml.example index 94a1c7c8638..442ca969baa 100644 --- a/conf.yml.example +++ b/conf.yml.example @@ -12,8 +12,8 @@ server: static: dist #前端文件目录 cache: enable: true #是否开启缓存 - expiration: 5 #缓存失效时间(单位:分钟) - cleanup_interval: 10 #清理失效缓存间隔 + expiration: 60 #缓存失效时间(单位:分钟) + cleanup_interval: 120 #清理失效缓存间隔 refresh_password: password #手动清理缓存密码 ali_drive: api_url: https://api.aliyundrive.com/v2 #阿里云盘api,无需修改 diff --git a/conf/const.go b/conf/const.go index 1675502855e..34eb940bb5d 100644 --- a/conf/const.go +++ b/conf/const.go @@ -18,7 +18,7 @@ var( var Conf = new(Config) const ( - VERSION="0.1.0" + VERSION="v0.1.3" ImageThumbnailProcess="image/resize,w_50" VideoThumbnailProcess="video/snapshot,t_0,f_jpg,w_50" diff --git a/server/controllers/get.go b/server/controllers/get.go index 1cb9da5b12f..adcb66a0009 100644 --- a/server/controllers/get.go +++ b/server/controllers/get.go @@ -1,32 +1,31 @@ package controllers import ( - "fmt" "github.com/Xhofe/alist/alidrive" - "github.com/Xhofe/alist/conf" "github.com/gin-gonic/gin" - "github.com/patrickmn/go-cache" log "github.com/sirupsen/logrus" "strings" ) +// 因为下载地址有时效,所以去掉了文件请求和直链的缓存 + func Get(c *gin.Context) { var get alidrive.GetReq if err := c.ShouldBindJSON(&get); err != nil { c.JSON(200,metaResponse(400,"Bad Request")) return } - log.Debugf("get:%v",get) + log.Debugf("get:%+v",get) // cache - cacheKey:=fmt.Sprintf("%s-%s","g",get.FileId) - if conf.Conf.Cache.Enable { - file,exist:=conf.Cache.Get(cacheKey) - if exist { - log.Debugf("使用了缓存:%s",cacheKey) - c.JSON(200,dataResponse(file)) - return - } - } + //cacheKey:=fmt.Sprintf("%s-%s","g",get.FileId) + //if conf.Conf.Cache.Enable { + // file,exist:=conf.Cache.Get(cacheKey) + // if exist { + // log.Debugf("使用了缓存:%s",cacheKey) + // c.JSON(200,dataResponse(file)) + // return + // } + //} file,err:=alidrive.GetFile(get.FileId) if err !=nil { c.JSON(200,metaResponse(500,err.Error())) @@ -38,9 +37,9 @@ func Get(c *gin.Context) { return } file.Paths=*paths - if conf.Conf.Cache.Enable { - conf.Cache.Set(cacheKey,file,cache.DefaultExpiration) - } + //if conf.Conf.Cache.Enable { + // conf.Cache.Set(cacheKey,file,cache.DefaultExpiration) + //} c.JSON(200,dataResponse(file)) } @@ -48,23 +47,23 @@ func Down(c *gin.Context) { fileIdParam:=c.Param("file_id") log.Debugf("down:%s",fileIdParam) fileId:=strings.Split(fileIdParam,"/")[1] - cacheKey:=fmt.Sprintf("%s-%s","d",fileId) - if conf.Conf.Cache.Enable { - downloadUrl,exist:=conf.Cache.Get(cacheKey) - if exist { - log.Debugf("使用了缓存:%s",cacheKey) - c.Redirect(301,downloadUrl.(string)) - return - } - } + //cacheKey:=fmt.Sprintf("%s-%s","d",fileId) + //if conf.Conf.Cache.Enable { + // downloadUrl,exist:=conf.Cache.Get(cacheKey) + // if exist { + // log.Debugf("使用了缓存:%s",cacheKey) + // c.Redirect(301,downloadUrl.(string)) + // return + // } + //} file,err:=alidrive.GetFile(fileId) if err != nil { c.JSON(200, metaResponse(500,err.Error())) return } - if conf.Conf.Cache.Enable { - conf.Cache.Set(cacheKey,file.DownloadUrl,cache.DefaultExpiration) - } + //if conf.Conf.Cache.Enable { + // conf.Cache.Set(cacheKey,file.DownloadUrl,cache.DefaultExpiration) + //} c.Redirect(301,file.DownloadUrl) return } \ No newline at end of file diff --git a/server/controllers/list.go b/server/controllers/list.go index acd9f89670d..4e5b4448a85 100644 --- a/server/controllers/list.go +++ b/server/controllers/list.go @@ -9,13 +9,18 @@ import ( log "github.com/sirupsen/logrus" ) +type ListReq struct { + Password string `json:"password"` + alidrive.ListReq +} + func List(c *gin.Context) { var list ListReq if err := c.ShouldBindJSON(&list);err!=nil { c.JSON(200, metaResponse(400,"Bad Request")) return } - log.Debugf("list:%v",list) + log.Debugf("list:%+v",list) // cache cacheKey:=fmt.Sprintf("%s-%s-%s","l",list.ParentFileId,list.Password) if conf.Conf.Cache.Enable { diff --git a/server/controllers/req_bean.go b/server/controllers/req_bean.go deleted file mode 100644 index d964463fdb1..00000000000 --- a/server/controllers/req_bean.go +++ /dev/null @@ -1,8 +0,0 @@ -package controllers - -import "github.com/Xhofe/alist/alidrive" - -type ListReq struct { - Password string `json:"password"` - alidrive.ListReq -} \ No newline at end of file diff --git a/server/controllers/search.go b/server/controllers/search.go index bb831dd1869..dcb5e7e9fb7 100644 --- a/server/controllers/search.go +++ b/server/controllers/search.go @@ -19,7 +19,7 @@ func Search(c *gin.Context) { c.JSON(200, metaResponse(400,"Bad Request")) return } - log.Debugf("search:%v",search) + log.Debugf("search:%+v",search) // cache cacheKey:=fmt.Sprintf("%s-%s","s",search.Query) if conf.Conf.Cache.Enable {