微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

远程服务器上的存储文件方法的 FTPSClient 错误

如何解决远程服务器上的存储文件方法的 FTPSClient 错误

我正在尝试使用 FTPSClient 将 csv 保存到远程服务器。 我在做什么:

object SandBox extends App {


  val client = new FTPSClient("TLS",false)
  var fis: InputStream = null

  try {
    client.setConnectTimeout(6000)
    client.connect(HOST,PORT)
    client.enterLocalPassiveMode
    client.login(USER,PWD)

    var reply = client.getReplyString
    
    client.execPBSZ(0)
    client.execPROT("P")
    client.setDataTimeout(60000)
    client.addProtocolCommandListener(new PrintCommandListener(new PrintWriter(System.out)))
    
    reply = client.getReplyString
  
    client.setFileType(org.apache.commons.net.ftp.FTP.BINARY_FILE_TYPE)

    reply = client.getReplyString

    client.setBufferSize(1024)
    
    reply = client.getReplyString

    fis = new FileInputStream(new File(PATH/File.csv))

    val bool = client.storeFile("file.csv",fis)

    if(!bool){
      import java.io.IOException
      throw new IOException("Failed to store file  due to: " + client.getReplyString)
    }

    client.logout()
  } catch {
    case e: Exception =>
      e.printstacktrace()
  } finally {
    try {
      if (fis != null) {
        fis.close()
      }
      client.disconnect()
    } catch {
      case e: Exception =>
        e.printstacktrace()
    }
  }

}

尝试存储文件时发生错误;这是日志:

> TYPE I
> 200 TYPE is Now 8-bit binary 
> PASV 
> 227 Entering Passive Mode (46,105,77,55,191,238)
> STOR PlaneteTechnologieFR_1_BRUN-20210301.csv
> 150 Accepted data connection
> org.apache.commons.net.ftp.FTPConnectionClosedException: Connection
> closed without indication.    at
> org.apache.commons.net.ftp.FTP.__getReply(FTP.java:324)   at
> org.apache.commons.net.ftp.FTP.__getReply(FTP.java:300)   at
> org.apache.commons.net.ftp.FTP.getReply(FTP.java:732)     at
> org.apache.commons.net.ftp.FTPClient.completePendingCommand(FTPClient.java:1853)
>   at
> org.apache.commons.net.ftp.FTPClient._storeFile(FTPClient.java:694)
>   at
> org.apache.commons.net.ftp.FTPClient.__storeFile(FTPClient.java:639)
>   at
> org.apache.commons.net.ftp.FTPClient.storeFile(FTPClient.java:2030)
>   at SandBox$.delayedEndpoint$SandBox$1(SandBox.scala:48)     at
> SandBox$delayedInit$body.apply(SandBox.scala:17)  at
> scala.Function0.apply$mcV$sp(Function0.scala:39)  at
> scala.Function0.apply$mcV$sp$(Function0.scala:39)     at
> scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:17)
>   at scala.App.$anonfun$main$1$adapted(App.scala:80)  at
> scala.collection.immutable.List.foreach(List.scala:392)   at
> scala.App.main(App.scala:80)  at scala.App.main$(App.scala:78)    at
> SandBox$.main(SandBox.scala:17)   at SandBox.main(SandBox.scala)

FTP连接成功;我也可以制作目录。 我的目录权限为 755,文件权限为 644。

我也通过 Filezilla 做了一些测试,我可以创建文件删除文件、创建目录...

你能帮我吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?