mirror of
https://github.com/1Panel-dev/1Panel.git
synced 2025-03-14 01:34:47 +08:00
fix: WebDav 支持 https (#3700)
This commit is contained in:
parent
df2a705713
commit
ca1710cabc
@ -108,7 +108,7 @@ func (s sftpClient) Download(src, target string) (bool, error) {
|
|||||||
}
|
}
|
||||||
defer dstFile.Close()
|
defer dstFile.Close()
|
||||||
|
|
||||||
if _, err = srcFile.WriteTo(dstFile); err != nil {
|
if _, err = io.Copy(srcFile, dstFile); err != nil {
|
||||||
return false, err
|
return false, err
|
||||||
}
|
}
|
||||||
return true, err
|
return true, err
|
||||||
|
@ -1,9 +1,12 @@
|
|||||||
package client
|
package client
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"crypto/tls"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
|
"net/http"
|
||||||
"os"
|
"os"
|
||||||
|
"strings"
|
||||||
|
|
||||||
"github.com/studio-b12/gowebdav"
|
"github.com/studio-b12/gowebdav"
|
||||||
)
|
)
|
||||||
@ -25,6 +28,14 @@ func NewWebDAVClient(vars map[string]interface{}) (*webDAVClient, error) {
|
|||||||
url = address
|
url = address
|
||||||
}
|
}
|
||||||
client := gowebdav.NewClient(url, username, password)
|
client := gowebdav.NewClient(url, username, password)
|
||||||
|
tlsConfig := &tls.Config{}
|
||||||
|
if strings.HasPrefix(address, "https") {
|
||||||
|
tlsConfig.InsecureSkipVerify = true
|
||||||
|
}
|
||||||
|
var transport http.RoundTripper = &http.Transport{
|
||||||
|
TLSClientConfig: tlsConfig,
|
||||||
|
}
|
||||||
|
client.SetTransport(transport)
|
||||||
if err := client.Connect(); err != nil {
|
if err := client.Connect(); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -33,22 +44,13 @@ func NewWebDAVClient(vars map[string]interface{}) (*webDAVClient, error) {
|
|||||||
|
|
||||||
func (s webDAVClient) Upload(src, target string) (bool, error) {
|
func (s webDAVClient) Upload(src, target string) (bool, error) {
|
||||||
targetFilePath := s.Bucket + "/" + target
|
targetFilePath := s.Bucket + "/" + target
|
||||||
fileInfo, err := os.Stat(src)
|
srcFile, err := os.Open(src)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false, err
|
return false, err
|
||||||
}
|
}
|
||||||
// 50M
|
defer srcFile.Close()
|
||||||
if fileInfo.Size() > 52428800 {
|
|
||||||
bytes, _ := os.ReadFile(src)
|
|
||||||
if err := s.client.Write(targetFilePath, bytes, 0644); err != nil {
|
|
||||||
return false, err
|
|
||||||
}
|
|
||||||
return true, nil
|
|
||||||
}
|
|
||||||
file, _ := os.Open(src)
|
|
||||||
defer file.Close()
|
|
||||||
|
|
||||||
if err := s.client.WriteStream(targetFilePath, file, 0644); err != nil {
|
if err := s.client.WriteStream(targetFilePath, srcFile, 0644); err != nil {
|
||||||
return false, err
|
return false, err
|
||||||
}
|
}
|
||||||
return true, nil
|
return true, nil
|
||||||
@ -76,16 +78,8 @@ func (s webDAVClient) Download(src, target string) (bool, error) {
|
|||||||
return false, err
|
return false, err
|
||||||
}
|
}
|
||||||
defer file.Close()
|
defer file.Close()
|
||||||
// 50M
|
reader, _ := s.client.ReadStream(srcPath)
|
||||||
if info.Size() > 52428800 {
|
if _, err := io.Copy(file, reader); err != nil {
|
||||||
reader, _ := s.client.ReadStream(srcPath)
|
|
||||||
if _, err := io.Copy(file, reader); err != nil {
|
|
||||||
return false, err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
bytes, _ := s.client.Read(srcPath)
|
|
||||||
if err := os.WriteFile(target, bytes, 0644); err != nil {
|
|
||||||
return false, err
|
return false, err
|
||||||
}
|
}
|
||||||
return true, err
|
return true, err
|
||||||
|
@ -107,9 +107,15 @@ const onDownload = async (row: Backup.RecordInfo) => {
|
|||||||
fileDir: row.fileDir,
|
fileDir: row.fileDir,
|
||||||
fileName: row.fileName,
|
fileName: row.fileName,
|
||||||
};
|
};
|
||||||
await downloadBackupRecord(params).then(async (res) => {
|
loading.value = true;
|
||||||
downloadFile(res.data);
|
await downloadBackupRecord(params)
|
||||||
});
|
.then(async (res) => {
|
||||||
|
loading.value = false;
|
||||||
|
downloadFile(res.data);
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
loading.value = false;
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const buttons = [
|
const buttons = [
|
||||||
|
Loading…
x
Reference in New Issue
Block a user