前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Go语言使用Scp传输文件

Go语言使用Scp传输文件

原创
作者头像
大师级码师
修改2021-11-01 10:23:27
1.6K1
修改2021-11-01 10:23:27
举报
文章被收录于专栏:大师级码师大师级码师
代码语言:javascript
复制
package main

import (  
    "fmt"  
    "go-ssh/ssh"  
    "io"  
    "os"  
)  

const (  
    user     = "user"  
    ip_port  = "ip_port"  
    password = "Passwd"  
)  

func main() {  
    PassWd := []ssh.AuthMethod{ssh.Password(password)}  
    Conf := ssh.ClientConfig{User: user, Auth: PassWd}  
    Client, err := ssh.Dial("tcp", ip_port, &Conf)  
    if err != nil {  
        fmt.Println(nil)  
    }  
    defer Client.Close()  
    if session, err := Client.NewSession(); err == nil {  
        defer session.Close()  
        go func() {  
            Buf := make([]byte, 1024)  
            w, _ := session.StdinPipe()  
            defer w.Close()  
            File, _ := os.Open("FilePath")  
            info, _ := File.Stat()  
            fmt.Fprintln(w, "C0644", info.Size(), "Des_Name")  
            for {  
                n, err := File.Read(Buf)  
                fmt.Fprint(w, string(Buf[:n]))  
                if err != nil {  
                    if err == io.EOF {  
                        return  
                    } else {  
                        panic(err)  
                    }  
                }  
            }  
        }()  
        if err := session.Run("/usr/bin/scp -qrt /mnt"); err != nil {  
            if err != nil {  
                if err.Error() != "Process exited with: 1. Reason was:  ()" {  
                    fmt.Println(err.Error())  
                }  
            }  
        }  
    }  
}  </pre> 

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档