go语言访问sftp
在 Go 语言中,我们可以使用 github.com/pkg/sftp 包来访问 SFTP 服务器。下面是一个简单的示例:
package main
import (
"fmt"
"io/ioutil"
"log"
"github.com/pkg/sftp"
"golang.org/x/crypto/ssh"
)
func main() {
// 创建 SSH 客户端配置
sshConfig := &ssh.ClientConfig{
User: "username",
Auth: []ssh.AuthMethod{
ssh.Password("password"),
},
HostKeyCallback: ssh.InsecureIgnoreHostKey(),
}
// 连接到 SFTP 服务器
sshClient, err := ssh.Dial("tcp", "sftp.example.com:22", sshConfig)
if err != nil {
log.Fatal(err)
}
defer sshClient.Close()
// 创建 SFTP 客户端
sftpClient, err := sftp.NewClient(sshClient)
if err != nil {
log.Fatal(err)
}
defer sftpClient.Close()
// 下载文件
srcFile, err := sftpClient.Open("/path/to/remote/file.txt")
if err != nil {
log.Fatal(err)
}
defer srcFile.Close()
data, err := ioutil.ReadAll(srcFile)
if err != nil {
log.Fatal(err)
}
// 打印文件内容
fmt.Println(string(data))
}
在这个示例中,我们创建了一个 SSH 客户端配置,并使用它来连接到 SFTP 服务器。然后,我们创建了一个 SFTP 客户端,并使用它来打开一个远程文件并读取它的内容。最后,我们将文件内容打印到控制台上。
原文地址: https://www.cveoy.top/t/topic/ry5 著作权归作者所有。请勿转载和采集!