mirror of https://github.com/Xhofe/alist
				
				
				
			
		
			
				
	
	
		
			53 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Go
		
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Go
		
	
	
package cmd
 | 
						|
 | 
						|
import (
 | 
						|
	"crypto/tls"
 | 
						|
	"fmt"
 | 
						|
	"time"
 | 
						|
 | 
						|
	"github.com/alist-org/alist/v3/internal/conf"
 | 
						|
	"github.com/alist-org/alist/v3/internal/op"
 | 
						|
	"github.com/alist-org/alist/v3/internal/setting"
 | 
						|
	"github.com/alist-org/alist/v3/pkg/utils"
 | 
						|
	"github.com/go-resty/resty/v2"
 | 
						|
)
 | 
						|
 | 
						|
func DelAdminCacheOnline() {
 | 
						|
	admin, err := op.GetAdmin()
 | 
						|
	if err != nil {
 | 
						|
		utils.Log.Errorf("[del_admin_cache] get admin error: %+v", err)
 | 
						|
		return
 | 
						|
	}
 | 
						|
	DelUserCacheOnline(admin.Username)
 | 
						|
}
 | 
						|
 | 
						|
func DelUserCacheOnline(username string) {
 | 
						|
	client := resty.New().SetTimeout(1 * time.Second).SetTLSClientConfig(&tls.Config{InsecureSkipVerify: conf.Conf.TlsInsecureSkipVerify})
 | 
						|
	token := setting.GetStr(conf.Token)
 | 
						|
	port := conf.Conf.Scheme.HttpPort
 | 
						|
	u := fmt.Sprintf("http://localhost:%d/api/admin/user/del_cache", port)
 | 
						|
	if port == -1 {
 | 
						|
		if conf.Conf.Scheme.HttpsPort == -1 {
 | 
						|
			utils.Log.Warnf("[del_user_cache] no open port")
 | 
						|
			return
 | 
						|
		}
 | 
						|
		u = fmt.Sprintf("https://localhost:%d/api/admin/user/del_cache", conf.Conf.Scheme.HttpsPort)
 | 
						|
	}
 | 
						|
	res, err := client.R().SetHeader("Authorization", token).SetQueryParam("username", username).Post(u)
 | 
						|
	if err != nil {
 | 
						|
		utils.Log.Warnf("[del_user_cache_online] failed: %+v", err)
 | 
						|
		return
 | 
						|
	}
 | 
						|
	if res.StatusCode() != 200 {
 | 
						|
		utils.Log.Warnf("[del_user_cache_online] failed: %+v", res.String())
 | 
						|
		return
 | 
						|
	}
 | 
						|
	code := utils.Json.Get(res.Body(), "code").ToInt()
 | 
						|
	msg := utils.Json.Get(res.Body(), "message").ToString()
 | 
						|
	if code != 200 {
 | 
						|
		utils.Log.Errorf("[del_user_cache_online] error: %s", msg)
 | 
						|
		return
 | 
						|
	}
 | 
						|
	utils.Log.Debugf("[del_user_cache_online] del user [%s] cache success", username)
 | 
						|
}
 |