| 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) | |
| } | |