Hallo alle miteinander.
Ich versuche mich gerade mit meiner ersten SFTP Verbindung zu einem Linux Root. Von diesem Versuch ich eine Logfile zu laden, per Stream in einen String zu schreiben und diesen dann weiter zu verarbeiten.
Zum meiner Überaschung, gelang das auch fast auf Anhieb.:lol:
Prinzipiell funktioniert alles einwandfrei. Ein Problem hab ich allerdings mit der Geschwindigkeit der ganzen Geschichte. Mein Logfile war gerade mal 500Byte groß und dennoch dauert es gut 5 Sekunden, bis ich den fertigen String zur Verarbeitung bereit habe. Davon vielleicht eine Sekunde für Authentifizierung. Geschätzt komme ich auf etwa 20 Bytes die Sekunde, was mir doch sehr arg wenig vor kommt.
Kann sowas alleine durch einen fehler im Code hervorgerufen werden? Ich mein klar ist die jeweilige INet Leitung da auch maßgebend, aber 20b/s ist doch hart, gerade wenns dann mal ein bissel größere Dateien werden.
Ich hoffe mir kann da jemand einen Tipp geben.
Ich versuche mich gerade mit meiner ersten SFTP Verbindung zu einem Linux Root. Von diesem Versuch ich eine Logfile zu laden, per Stream in einen String zu schreiben und diesen dann weiter zu verarbeiten.
Zum meiner Überaschung, gelang das auch fast auf Anhieb.:lol:
Prinzipiell funktioniert alles einwandfrei. Ein Problem hab ich allerdings mit der Geschwindigkeit der ganzen Geschichte. Mein Logfile war gerade mal 500Byte groß und dennoch dauert es gut 5 Sekunden, bis ich den fertigen String zur Verarbeitung bereit habe. Davon vielleicht eine Sekunde für Authentifizierung. Geschätzt komme ich auf etwa 20 Bytes die Sekunde, was mir doch sehr arg wenig vor kommt.
Kann sowas alleine durch einen fehler im Code hervorgerufen werden? Ich mein klar ist die jeweilige INet Leitung da auch maßgebend, aber 20b/s ist doch hart, gerade wenns dann mal ein bissel größere Dateien werden.
Ich hoffe mir kann da jemand einen Tipp geben.
Java:
JSch jsch = new JSch();
try {
Session sftpSession = jsch.getSession(user, ip, port);
Hashtable config = new Hashtable();
config.put("StrictHostKeyChecking", "no");
sftpSession.setConfig(config);
sftpSession.setPassword(pw);
sftpSession.connect();
ChannelSftp sftpChannel = (ChannelSftp) sftpSession.openChannel("sftp");
sftpChannel.connect();
if (sftpChannel.isConnected()) {
try {
sftpChannel.cd(path/to/dir);
fileStream = sftpChannel.get(file_name);
byte zeichen;
do {
zeichen = (byte) fileStream.read();
text += (char) zeichen;
} while (zeichen != -1);