clq
浏览(362) -
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)
}
}
本帖子属于以下条目()
NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.