java向服务器写入文件失败,将一定数量的文件写入SFTP服务器会导致内存地址无效...

Problem

当我将一定数量的文件(从Linux)写入远程SFTP服务器(Linux)时,我收到错误:

panic:运行时错误:无效的内存地址或nil指针取消引用

Approach

我正在使用 github.com/pkg/sftp 将本地文件传输到远程服务器 .

func mvDirs(client *sftp.Client, dirs, files []string, remotedir string) {

for _, d := range dirs {

err := client.Mkdir(remotedir + d)

if err != nil {

log.Fatal("dirs error: ", err)

}

}

for i, f := range files {

src, err := ioutil.ReadFile(f)

if err != nil {

log.Fatal("src error: ", err)

}

dst, err := client.Create(f)

if err != nil {

log.Fatal("dst error: ", err)

}

_, err = dst.Write(src)

if err != nil {

log.Fatal("write error: ", err)

}

}

}

这适用于只包含几个文件的目录 . 但在一定数量的文件(> 1,022),我得到错误 .

Exact error log

panic:运行时错误:无效的内存地址或nil指针取消引用[signal SIGSEGV:segmentation violation code = 0x1 addr = 0x0 pc = 0x568b0a] goroutine 1 [running]:github.com/pkg/sftp . (* File).Write( 0x0,0xc0002ef800,0x5f1,0x7f1,0x64b660,0xc00014a9f0,0x38)/go/src/github.com/pkg/sftp/client.go:1044 0x3a main.mvDirs(0xc0000b2070,0xc0003e0000,0x1ab,0x200,0xc0003d2000,0x79d,0xa00 ,0x61d0c8,0x16)/go/src/project/deploy/client.go:59 0x463 main.main()/ go/src/project/deploy/main.go:20 0x1ab

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值