mirror of
https://github.com/1Panel-dev/1Panel.git
synced 2025-10-30 02:36:18 +08:00
fix: Solve the problem of failed binding and synchronization of Ali Pan (#9195)
This commit is contained in:
parent
eddc1b6a8d
commit
e3e2006c19
3 changed files with 42 additions and 3 deletions
|
|
@ -497,6 +497,7 @@ func (a *aliClient) completeUpload(uploadID, fileID string) error {
|
||||||
|
|
||||||
type tokenResp struct {
|
type tokenResp struct {
|
||||||
RefreshToken string `json:"refresh_token"`
|
RefreshToken string `json:"refresh_token"`
|
||||||
|
AccessToken string `json:"access_token"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func loadToken(refresh_token string) (string, error) {
|
func loadToken(refresh_token string) (string, error) {
|
||||||
|
|
@ -524,7 +525,7 @@ func loadToken(refresh_token string) (string, error) {
|
||||||
if err := json.Unmarshal(resp.Body(), &respItem); err != nil {
|
if err := json.Unmarshal(resp.Body(), &respItem); err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
return respItem.RefreshToken, nil
|
return respItem.AccessToken, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func RefreshALIToken(varMap map[string]interface{}) (string, error) {
|
func RefreshALIToken(varMap map[string]interface{}) (string, error) {
|
||||||
|
|
|
||||||
|
|
@ -284,7 +284,15 @@ func (u *BackupService) RefreshToken(req dto.OperateByName) error {
|
||||||
|
|
||||||
varsItem, _ := json.Marshal(varMap)
|
varsItem, _ := json.Marshal(varMap)
|
||||||
backup.Vars = string(varsItem)
|
backup.Vars = string(varsItem)
|
||||||
return backupRepo.Save(&backup)
|
if err := backupRepo.Save(&backup); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
go func() {
|
||||||
|
if err := xpack.Sync(constant.SyncBackupAccounts); err != nil {
|
||||||
|
global.LOG.Errorf("sync backup account to node failed, err: %v", err)
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (u *BackupService) NewClient(backup *model.BackupAccount) (cloud_storage.CloudStorageClient, error) {
|
func (u *BackupService) NewClient(backup *model.BackupAccount) (cloud_storage.CloudStorageClient, error) {
|
||||||
|
|
|
||||||
|
|
@ -20,9 +20,10 @@ type aliClient struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewALIClient(vars map[string]interface{}) (*aliClient, error) {
|
func NewALIClient(vars map[string]interface{}) (*aliClient, error) {
|
||||||
|
refresh_token := loadParamFromVars("refresh_token", vars)
|
||||||
drive_id := loadParamFromVars("drive_id", vars)
|
drive_id := loadParamFromVars("drive_id", vars)
|
||||||
|
|
||||||
token, err := RefreshALIToken(vars)
|
token, err := loadToken(refresh_token)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
@ -355,6 +356,35 @@ func (a *aliClient) completeUpload(uploadID, fileID string) error {
|
||||||
|
|
||||||
type tokenResp struct {
|
type tokenResp struct {
|
||||||
RefreshToken string `json:"refresh_token"`
|
RefreshToken string `json:"refresh_token"`
|
||||||
|
AccessToken string `json:"access_token"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func loadToken(refresh_token string) (string, error) {
|
||||||
|
client := resty.New()
|
||||||
|
client.SetTLSClientConfig(&tls.Config{
|
||||||
|
InsecureSkipVerify: true,
|
||||||
|
})
|
||||||
|
data := map[string]interface{}{
|
||||||
|
"grant_type": "refresh_token",
|
||||||
|
"refresh_token": refresh_token,
|
||||||
|
}
|
||||||
|
|
||||||
|
url := "https://api.aliyundrive.com/token/refresh"
|
||||||
|
resp, err := client.R().
|
||||||
|
SetBody(data).
|
||||||
|
Post(url)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
return "", fmt.Errorf("load account token failed, err: %v", err)
|
||||||
|
}
|
||||||
|
if resp.StatusCode() != 200 {
|
||||||
|
return "", fmt.Errorf("load account token failed, code: %v", resp.StatusCode())
|
||||||
|
}
|
||||||
|
var respItem tokenResp
|
||||||
|
if err := json.Unmarshal(resp.Body(), &respItem); err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
return respItem.AccessToken, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func RefreshALIToken(varMap map[string]interface{}) (string, error) {
|
func RefreshALIToken(varMap map[string]interface{}) (string, error) {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue