Groovy FTP上传后存档文件已损坏

时间:2018-06-26 20:09:32

标签: jenkins groovy

我想尝试使用Groovy脚本从Jenkins向我的FTP服务器上传FTP。 上传后,存档文件已损坏,无法打开。

我从Jenkins的工作区下载了档案。一切正确。

import org.apache.commons.net.ftp.FTPClient
import org.apache.commons.net.ftp.FTPFile
import org.apache.commons.net.ftp.FTPF
import java.io.InputStream

@Grab(group='commons-net', module='commons-net', version='3.6')
def upload(){

 String ftpServer = "ftp.my-domain.com";
 String folder = "/";
 def ftpClient = new FTPClient()




  ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
  try {
    InputStream is = classLoader.getResourceAsStream("deployment.tar.gz")
             ftpClient.connect(ftpServer)
             ftpClient.enterLocalPassiveMode()
             ftpClient.login("jenkins@my-domain.com","JenkisPassword")
             ftpClient.setFileType(FTP.BINARY_FILE_TYPE)
            // Store file to server
            ftpClient.storeFile("deployment.tar.gz", is);
            ftpClient.logout();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                ftpClient.disconnect();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
}

upload();

有什么解决办法吗?还是一个坏方法?

1 个答案:

答案 0 :(得分:1)

您可能需要在发送文件之前先致电setFileType(FTP.BINARY_FILE_TYPE)