Download model/token_cache.go from Jack698/velo: direct link, hf CLI and curl.
- Browser
- Download file 2.26 kB
-
https://huggingface.co/spaces/Jack698/velo/resolve/main/model/token_cache.go
- Command line
-
hf download hf://spaces/Jack698/velo/model/token_cache.go
-
curl -L -o token_cache.go https://huggingface.co/spaces/Jack698/velo/resolve/main/model/token_cache.go
2.26 kB
| // Copyright (c) 2025 Tethys Plex | |
| // | |
| // This file is part of Veloera. | |
| // | |
| // This program is free software: you can redistribute it and/or modify | |
| // it under the terms of the GNU General Public License as published by | |
| // the Free Software Foundation, either version 3 of the License, or | |
| // (at your option) any later version. | |
| // | |
| // This program is distributed in the hope that it will be useful, | |
| // but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| // GNU General Public License for more details. | |
| // | |
| // You should have received a copy of the GNU General Public License | |
| // along with this program. If not, see <https://www.gnu.org/licenses/>. | |
| package model | |
| import ( | |
| "fmt" | |
| "time" | |
| "veloera/common" | |
| "veloera/constant" | |
| ) | |
| func cacheSetToken(token Token) error { | |
| key := common.GenerateHMAC(token.Key) | |
| token.Clean() | |
| err := common.RedisHSetObj(fmt.Sprintf("token:%s", key), &token, time.Duration(constant.TokenCacheSeconds)*time.Second) | |
| if err != nil { | |
| return err | |
| } | |
| return nil | |
| } | |
| func cacheDeleteToken(key string) error { | |
| key = common.GenerateHMAC(key) | |
| err := common.RedisHDelObj(fmt.Sprintf("token:%s", key)) | |
| if err != nil { | |
| return err | |
| } | |
| return nil | |
| } | |
| func cacheIncrTokenQuota(key string, increment int64) error { | |
| key = common.GenerateHMAC(key) | |
| err := common.RedisHIncrBy(fmt.Sprintf("token:%s", key), constant.TokenFiledRemainQuota, increment) | |
| if err != nil { | |
| return err | |
| } | |
| return nil | |
| } | |
| func cacheDecrTokenQuota(key string, decrement int64) error { | |
| return cacheIncrTokenQuota(key, -decrement) | |
| } | |
| func cacheSetTokenField(key string, field string, value string) error { | |
| key = common.GenerateHMAC(key) | |
| err := common.RedisHSetField(fmt.Sprintf("token:%s", key), field, value) | |
| if err != nil { | |
| return err | |
| } | |
| return nil | |
| } | |
| // CacheGetTokenByKey 从缓存中获取 token,如果缓存中不存在,则从数据库中获取 | |
| func cacheGetTokenByKey(key string) (*Token, error) { | |
| hmacKey := common.GenerateHMAC(key) | |
| if !common.RedisEnabled { | |
| return nil, fmt.Errorf("redis is not enabled") | |
| } | |
| var token Token | |
| err := common.RedisHGetObj(fmt.Sprintf("token:%s", hmacKey), &token) | |
| if err != nil { | |
| return nil, err | |
| } | |
| token.Key = key | |
| return &token, nil | |
| } | |