Ftp與NFS服務器端上傳和下載

yg3n 9年前發布 | 3K 次閱讀 Java FTP

本功能實現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 "";

}

}</pre>

 本文由用戶 yg3n 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!