All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.orion.net.ftp.client.Ftps Maven / Gradle / Ivy

The newest version!
package com.orion.net.ftp.client;

import com.orion.lang.utils.Exceptions;
import com.orion.net.ftp.client.config.FtpConfig;
import com.orion.net.ftp.client.instance.IFtpInstance;
import com.orion.net.ftp.client.pool.FtpClientFactory;
import com.orion.net.ftp.client.pool.FtpClientPool;
import org.apache.commons.net.ftp.FTPClient;

/**
 * FTP 工具类
 *
 * @author Jiahang Li
 * @version 1.0.0
 * @since 2020/3/17 16:10
 */
public class Ftps {

    private Ftps() {
    }

    /**
     * 销毁连接实例
     *
     * @param client client
     */
    public static void destroy(FTPClient client) {
        if (client != null && client.isConnected()) {
            try {
                client.logout();
            } catch (Exception e) {
                Exceptions.printStacks(e);
            } finally {
                try {
                    client.disconnect();
                } catch (Exception e) {
                    Exceptions.printStacks(e);
                }
            }
        }
    }

    /**
     * 判断连接是否存活
     *
     * @param client client
     * @return 是否存活
     */
    public static boolean isActive(FTPClient client) {
        if (client != null && client.isConnected()) {
            try {
                return client.sendNoOp();
            } catch (Exception e) {
                return false;
            }
        }
        return false;
    }

    /**
     * 创建 FTP 实例
     *
     * @param ftpConfig config
     * @return FTP 实例
     */
    public static IFtpInstance createInstance(FtpConfig ftpConfig) {
        return new FtpClientFactory(ftpConfig).createInstance();
    }

    /**
     * 创建 FTP 连接池
     *
     * @param ftpConfig config
     * @return pool
     */
    public static FtpClientPool createClientPool(FtpConfig ftpConfig) {
        return new FtpClientPool(new FtpClientFactory(ftpConfig));
    }

    /**
     * 创建 FTP 连接池
     *
     * @param ftpConfig config
     * @param size      size
     * @return pool
     */
    public static FtpClientPool createClientPool(FtpConfig ftpConfig, int size) {
        return new FtpClientPool(new FtpClientFactory(ftpConfig), size);
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy