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>
51 lines
1.5 KiB
Go
51 lines
1.5 KiB
Go
package halalcloudopen
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
|
|
"github.com/OpenListTeam/OpenList/v4/internal/op"
|
|
"github.com/halalcloud/golang-sdk-lite/halalcloud/apiclient"
|
|
sdkUser "github.com/halalcloud/golang-sdk-lite/halalcloud/services/user"
|
|
sdkUserFile "github.com/halalcloud/golang-sdk-lite/halalcloud/services/userfile"
|
|
)
|
|
|
|
func (d *HalalCloudOpen) Init(ctx context.Context) error {
|
|
if d.uploadThread < 1 || d.uploadThread > 32 {
|
|
d.uploadThread, d.UploadThread = 3, 3
|
|
}
|
|
if d.halalCommon == nil {
|
|
d.halalCommon = &halalCommon{
|
|
UserInfo: &sdkUser.User{},
|
|
refreshTokenFunc: func(token string) error {
|
|
d.Addition.RefreshToken = token
|
|
op.MustSaveDriverStorage(d)
|
|
return nil
|
|
},
|
|
}
|
|
}
|
|
if d.Addition.RefreshToken != "" {
|
|
d.halalCommon.SetRefreshToken(d.Addition.RefreshToken)
|
|
}
|
|
timeout := d.Addition.TimeOut
|
|
if timeout <= 0 {
|
|
timeout = 60
|
|
}
|
|
host := d.Addition.Host
|
|
if host == "" {
|
|
host = "openapi.2dland.cn"
|
|
}
|
|
|
|
client := apiclient.NewClient(nil, host, d.Addition.ClientID, d.Addition.ClientSecret, d.halalCommon, apiclient.WithTimeout(time.Second*time.Duration(timeout)))
|
|
d.sdkClient = client
|
|
d.sdkUserFileService = sdkUserFile.NewUserFileService(client)
|
|
d.sdkUserService = sdkUser.NewUserService(client)
|
|
userInfo, err := d.sdkUserService.Get(ctx, &sdkUser.User{})
|
|
if err != nil {
|
|
return err
|
|
}
|
|
d.halalCommon.UserInfo = userInfo
|
|
// 能够获取到用户信息,已经检查了 RefreshToken 的有效性,无需再次检查
|
|
return nil
|
|
}
|