sshtools / push-sftp

A dedicated SFTP client for increasing throughput performance on high latency WAN/Internet transfers

Home Page:https://jadaptive.com/push-sftp

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Push SFTP

A dedicated SFTP client for increasing throughput performance on high latency WAN/Internet transfers.

This repository hosts both the command line interface, and the graphical interface called FileDrop. SSH and SFTP operations are supplied by the Maverick Synergy Java SSH Library which includes the "push" mechanism itself.

Installers

End-user installers and documentation is available at jadaptive.com.

Development

The project uses Maven as a build system. You should be able to import the pom.xml into any modern Java IDE. Pull requests are welcomed and encouraged for new features and bug fixes.

Implementing commands

If you want to implement a new child command within the interactive command you first need to extend SftpCommand.

import picocli.CommandLine.Command;

@Command(name = "hello", description = "Hello world example")
public class Hello extends SftpCommand {

	@Override
	protected Integer onCall() throws Exception {
		
		getTerminal().getWriter().println("Hello world!");
		return 0;
	}
}

Then add the command class to the PSFTPCommands @Command annotation, in the subcommands array.

@Command(name = "push-sftp", mixinStandardHelpOptions = false, 
			description = "Interactive shell", 
			subcommands = { Ls.class, Cd.class, Lcd.class, Pwd.class, Lls.class, 
					Lpwd.class, Help.class, Rm.class, Rmdir.class,
					Mkdir.class, Umask.class, Bye.class, Chgrp.class, 
					Chown.class, Chmod.class, Push.class, Put.class, Get.class,
					ChildUpdateCommand.class, Info.class, Hello.class
					})
public class PSFTPCommands implements InteractiveSshCommand {

If you fail to do this the command will not appear in the help and will not be executable within the interactive command shell.

To use the current SFTP connection SftpCommand provides a method to return an SftpClient

var sftp = getSftpClient()

About

A dedicated SFTP client for increasing throughput performance on high latency WAN/Internet transfers

https://jadaptive.com/push-sftp

License:GNU General Public License v3.0


Languages

Language:Java 99.6%Language:CSS 0.4%