FTPS上传文件踩的坑

1.Connection closed without indication

这个问题产生原因三种:

①连接超时和数据传输超时

解决办法延长超时时间

//设置连接超时时间为60s
ftpsClient.setConnectTimeout(60000)
//设置数据超时时间为60s
ftpsClient.setDataTimeout(60000)

②服务端最大连接数限制,比如FTP服务器设置最大用户访问数为2,3个用户同时连接,即可产生该问题

解决办法:服务器增大配置,减少程序访问服务器线程数

③security mode选择错误(Implicit/Explicit)

解决办法:

根据默认端口选择mode是一定不会错的

比如我的默认端口990,那么程序如下:

val ftpsClient = new FTPSClient("TLS", true)

2.java.security.cert.CertificateExpiredException: NotAfter

这个问题是证书过期了

解决办法:一个是更新证书,一个是忽略证书

更新证书就不写了,下面写如何忽略证书吧,默认端口990

//创建SSL上下文
val sslContext = SSLContext.getInstance("TLS")
//自定义证书,忽略已过期证书
val trustManager = new X509TrustManager {
  override def getAcceptedIssuers = null

  override def checkClientTrusted(x509Certificates: Array[X509Certificate], s: String): Unit = {}

  override def checkServerTrusted(x509Certificates: Array[X509Certificate], s: String): Unit = {}
}
//初始化
sslContext.init(null, Array[TrustManager](trustManager), null)
//创建客户端,mode选择Implicit
val ftpsClient = new FTPSClient(true, sslContext)

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值