登录 用户中心() [退出] 后台管理 注册
   
您的位置: 首页 >> SoftHub关联区 >> 主题: [golang]golang 的 sftp 库     [回主站]     [分站链接]
[golang]golang 的 sftp 库
clq
浏览(361) - 2024-01-20 12:45:26 发表 编辑

关键字:

[2024-01-25 18:58:20 最后更新]
[golang]golang 的 sftp 库

待验证。
"github.com/pkg/sftp"

https://blog.csdn.net/Jack_he_li/article/details/120678905

还有个 ssh 的也可以看一下
https://blog.csdn.net/qq_44445809/article/details/129797933
golang.org/x/crypto/ssh

ftp 的话据说有内置的 "net/ftp",还有个
github.com/dutchcoders/goftp

下面这个的 start 更多
https://github.com/jlaffaye/ftp




clq  2024-01-25 18:41:33 发表 编辑



可以使用Go语言的ftp包来实现FTP上传golang并获得FTP进度。

下面是一个示例代码:

package main

import (

"fmt"

"io"

"net/ftp"

"os"

)

func main() {

// 连接FTP服务器

ftp, err := ftp.Dial("ftp.example.com:21")

if err != nil {

fmt.Println(err)

return

}

defer ftp.Quit()

// 登录

if err := ftp.Login("username", "password"); err != nil {

fmt.Println(err)

return

}

// 上传文件

srcFile, err := os.Open("golang.zip")

if err != nil {

fmt.Println(err)

return

}

defer srcFile.Close()

// 获取文件大小

fileInfo, err := srcFile.Stat()

if err != nil {

fmt.Println(err)

return

}

fileSize := fileInfo.Size()

// 上传文件

dstFile, err := ftp.Stor("golang.zip", srcFile)

if err != nil {

fmt.Println(err)

return

}

defer dstFile.Close()

// 获取FTP上传进度

var uploadedSize int64

for {

n, err := dstFile.Read(make([]byte, 1024))

if err != nil {

if err == io.EOF {

break

}

fmt.Println(err)

return

}

uploadedSize += int64(n)

fmt.Printf("FTP上传进度:%.2f%%\n", float64(uploadedSize)/float64(fileSize)*100)

}

}


总数:1 页次:1/1 首页 尾页  
总数:1 页次:1/1 首页 尾页  


所在合集/目录



发表评论:
文本/html模式切换 插入图片 文本/html模式切换


附件:



NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.

Copyright © 2005-2020 clq, All Rights Reserved
版权所有
桂ICP备15002303号-1