2013-07-04 25 views
13

JSch kullanarak SFTP'li bir sunucuya iki dosya yüklemeye çalışıyorum. Dizin boşsa dosyaları yüklemek için iyi çalışır ancak aynı dosyayı tekrar tekrar yüklemek istiyorum (sadece içerideki kimliği değiştirmek) ancak bunu nasıl yapacağımı anlayamıyorum. JSCH'de OVERWRITE adlı bazı statik parametreler var ancak nasıl kullanılacağını öğrenemiyorum.Java SFTP JSch kullanarak yükleme, ancak geçerli dosyanın üzerine nasıl yazılır?

Bu ayarı nasıl ekleyeceğimi göstermek ister mi?

Bu benim şimdiki kodudur:

public void upload() { 
    try { 
    JSch jsch = new JSch(); 
session = jsch.getSession(SFTPUSER, SFTPHOST, SFTPPORT); 
session.setPassword(SFTPPASS); 
java.util.Properties config = new java.util.Properties(); 
config.put("StrictHostKeyChecking", "no"); 
session.setConfig(config); 
session.connect(); 
channel = session.openChannel("sftp"); 
channel.connect(); 
channelSftp = (ChannelSftp) channel; 
channelSftp.cd(SFTPWORKINGDIR); 

    File f1 = new File("ext_files/" + FILETOTRANSFER1); 
channelSftp.put(new FileInputStream(f1), f1.getName()); 
File f2 = new File("ext_files/" + FILETOTRANSFER2); 
channelSftp.put(new FileInputStream(f2), f2.getName()); 

channelSftp.exit(); 
session.disconnect(); 
} catch (Exception ex) { 
    ex.printStackTrace(); 
    } 
} 

cevap

17

ben JSch hiç kullanmadım ama görünüşe vardır biri "modunda eklenmesiyle mevcut imza ile eşleşen aşırı satım yöntemleri bir takım "parametresi ve ChannelSftp sınıfında üç statik mod parametreleri var gibi görünüyor (OVERWRİTE = 0, DEVAM = 1, EKLEME = 2) Bu nedenle, kullandığınız gerekir:

channelSftp.put(new FileInputStream(f1), f1.getName(), ChannelSftp.OVERWRITE);