mirror of
https://github.com/OpenListTeam/OpenList.git
synced 2025-11-25 19:37:41 +08:00
* 新增清真云Open驱动,支持最新的轻量SDK * Change Go version in go.mod Downgrade Go version from 1.24.2 to 1.23.4 Signed-off-by: zzzhr1990 <zzzhr@hotmail.com> * Apply suggestions from code review * Removed unnecessary comments * Downgraded the Go version to 1.23.4. * Not sure whether FileStream supports concurrent read and write operations, so currently using single-threaded upload to ensure safety. Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: zzzhr1990 <zzzhr@hotmail.com> * feat(halalcloud_open): support disk usage * Set useSingleUpload to true for upload safety Not sure whether FileStream supports concurrent read and write operations, so currently using single-threaded upload to ensure safety. Signed-off-by: zzzhr1990 <zzzhr@hotmail.com> * Update meta.go Change required for RefreshToken, If using a personal API approach, the RefreshToken is not required. Signed-off-by: zzzhr1990 <zzzhr@hotmail.com> * remove debug logs * bump halalcloud SDK version * fix unnecessary params * Update drivers/halalcloud_open/driver_init.go Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: zzzhr1990 <zzzhr@hotmail.com> * Fixed spelling errors; changed hardcoded retry parameters to constants. * remove pointer in get link function in utils.go --------- Signed-off-by: zzzhr1990 <zzzhr@hotmail.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: KirCute <951206789@qq.com>
112 lines
3.0 KiB
Go
112 lines
3.0 KiB
Go
package halalcloudopen
|
|
|
|
import (
|
|
"sync"
|
|
"time"
|
|
|
|
sdkUser "github.com/halalcloud/golang-sdk-lite/halalcloud/services/user"
|
|
)
|
|
|
|
var (
|
|
slicePostErrorRetryInterval = time.Second * 120
|
|
retryTimes = 5
|
|
)
|
|
|
|
type halalCommon struct {
|
|
// *AuthService // 登录信息
|
|
UserInfo *sdkUser.User // 用户信息
|
|
refreshTokenFunc func(token string) error
|
|
// serv *AuthService
|
|
configs sync.Map
|
|
}
|
|
|
|
func (m *halalCommon) GetAccessToken() (string, error) {
|
|
value, exists := m.configs.Load("access_token")
|
|
if !exists {
|
|
return "", nil // 如果不存在,返回空字符串
|
|
}
|
|
return value.(string), nil // 返回配置项的值
|
|
}
|
|
|
|
// GetRefreshToken implements ConfigStore.
|
|
func (m *halalCommon) GetRefreshToken() (string, error) {
|
|
value, exists := m.configs.Load("refresh_token")
|
|
if !exists {
|
|
return "", nil // 如果不存在,返回空字符串
|
|
}
|
|
return value.(string), nil // 返回配置项的值
|
|
}
|
|
|
|
// SetAccessToken implements ConfigStore.
|
|
func (m *halalCommon) SetAccessToken(token string) error {
|
|
m.configs.Store("access_token", token)
|
|
return nil
|
|
}
|
|
|
|
// SetRefreshToken implements ConfigStore.
|
|
func (m *halalCommon) SetRefreshToken(token string) error {
|
|
m.configs.Store("refresh_token", token)
|
|
if m.refreshTokenFunc != nil {
|
|
return m.refreshTokenFunc(token)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// SetToken implements ConfigStore.
|
|
func (m *halalCommon) SetToken(accessToken string, refreshToken string, expiresIn int64) error {
|
|
m.configs.Store("access_token", accessToken)
|
|
m.configs.Store("refresh_token", refreshToken)
|
|
m.configs.Store("expires_in", expiresIn)
|
|
if m.refreshTokenFunc != nil {
|
|
return m.refreshTokenFunc(refreshToken)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// ClearConfigs implements ConfigStore.
|
|
func (m *halalCommon) ClearConfigs() error {
|
|
m.configs = sync.Map{} // 清空map
|
|
return nil
|
|
}
|
|
|
|
// DeleteConfig implements ConfigStore.
|
|
func (m *halalCommon) DeleteConfig(key string) error {
|
|
_, exists := m.configs.Load(key)
|
|
if !exists {
|
|
return nil // 如果不存在,直接返回
|
|
}
|
|
m.configs.Delete(key) // 删除指定的配置项
|
|
return nil
|
|
}
|
|
|
|
// GetConfig implements ConfigStore.
|
|
func (m *halalCommon) GetConfig(key string) (string, error) {
|
|
value, exists := m.configs.Load(key)
|
|
if !exists {
|
|
return "", nil // 如果不存在,返回空字符串
|
|
}
|
|
return value.(string), nil // 返回配置项的值
|
|
}
|
|
|
|
// ListConfigs implements ConfigStore.
|
|
func (m *halalCommon) ListConfigs() (map[string]string, error) {
|
|
configs := make(map[string]string)
|
|
m.configs.Range(func(key, value interface{}) bool {
|
|
configs[key.(string)] = value.(string) // 将每个配置项添加到map中
|
|
return true // 继续遍历
|
|
})
|
|
return configs, nil // 返回所有配置项
|
|
}
|
|
|
|
// SetConfig implements ConfigStore.
|
|
func (m *halalCommon) SetConfig(key string, value string) error {
|
|
m.configs.Store(key, value) // 使用Store方法设置或更新配置项
|
|
return nil // 成功设置配置项后返回nil
|
|
}
|
|
|
|
func NewHalalCommon() *halalCommon {
|
|
return &halalCommon{
|
|
configs: sync.Map{},
|
|
}
|
|
}
|