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

package cn.ac.nercis.engine.sign.util;

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 "";
        
    }
    
}


你可能感兴趣的:(Ftp与NFS服务器端上传和下载)