Ftp与NFS服务器端上传和下载

清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>

本功能实现FTP和NFS服务器上的文件传输,应用Apache提供的 方法 commons-vfs2工具
import java.io.File;
 
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.vfs2.FileObject;
import org.apache.commons.vfs2.Selectors;
import org.apache.commons.vfs2.impl.StandardFileSystemManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
 
public class DownOrUpLoad {
   public static Logger logger = LoggerFactory.getLogger(DownOrUpLoad.class);
 
/**
     * 上传文件到本地路径
     * 
     * @param remotePath 远程服务器上的路径
     * @param tempApkPath 本地路径
     */
   private void uploadAPk(final String tempApkPath,final String remotePath){
        switch (protocols) {
        case  "nfs" :
            uploadAPk_nfs(tempApkPath,remotePath);
            break;
        case "ftp" :
            uploadAPk_ftp(tempApkPath,remotePath);
            break;
        default:
            break;
        }    
    }
     
    private void uploadAPk_ftp(final String tempApkPath,final String remotePath){
        logger.info("upload file {} to {} ",tempApkPath,remotePath);
        try{
            final String ftpConnect=ftpPath;
            StandardFileSystemManager fsManager = new StandardFileSystemManager();
            fsManager.init();
             
            FileObject destFile = fsManager.resolveFile(ftpConnect+remotePath);
             
            if(destFile.exists()){
                destFile.createFile();
            }
            FileObject src = fsManager.resolveFile(tempApkPath);
            destFile.copyFrom(src, Selectors.SELECT_FILES);
             
            src.close();destFile.close();fsManager.close();
             
        }catch(Exception e){
            e.printStackTrace();
        }
    }
     
    private void uploadAPk_nfs(final String tempApkPath,final String remotePath){
        logger.info("upload file {} to {} ",tempApkPath,remotePath);
        try {
            FileUtils.copyFile(new File(tempApkPath),new File(nfsPath+remotePath));
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
     
    /**
     * 下载远程服务器apk到本地路径
     * 
     * @param remoteApkPath 远程服务器上的路径
     * @return 本地路径
     */
    private String downloadAPKtoLocalTempPath(final String remoteApkPath){
        switch (protocols) {
        case  "nfs" :
            return downloadAPK_NFS(remoteApkPath);
        case "ftp" :
            return downloadAPk_FTP(remoteApkPath);
        default:
            return "";
        }    
    }
     
    private  String downloadAPK_NFS(String remoteApkPath){
        File srcFile=new File(remoteApkPath);
        File descFile=new File(apkLocalPath+FilenameUtils.getName(remoteApkPath));
        try {
            if(srcFile.exists()){
                FileUtils.copyFile(srcFile, descFile);
                return descFile.getAbsolutePath();
            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return "";
         
         
    }
     
    private  String downloadAPk_FTP(final String remoteApkPath){
        try{
            final String ftpConnect=ftpPath;
            StandardFileSystemManager fsManager = new StandardFileSystemManager();
            fsManager.init();
            File descFile=new File(apkLocalPath+FilenameUtils.getName(remoteApkPath));
            FileObject dest = fsManager.resolveFile(descFile.getAbsolutePath());
            if(dest.exists()){
                dest.createFile();
            }
            FileObject src = fsManager.resolveFile(ftpConnect+remoteApkPath);
            dest.copyFrom(src, Selectors.SELECT_FILES);
             
            src.close();dest.close();fsManager.close();
             
            return descFile.getAbsolutePath();
        }catch(Exception e){
            e.printStackTrace();
        }
         
        return "";
         
    }
     
}