在 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 客户端,并使用它来打开一个远程文件并读取它的内容。最后,我们将文件内容打印到控制台上。

go语言访问sftp

原文地址: https://www.cveoy.top/t/topic/ry5 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录