La tarea de crear un cliente SFTP en Java se volvio una tarea realmente sencilla gracias a la librería JSCH. JSch es una implementación del protocolo SSH2 en Java (que permite usar el canal SFTP). Esta librería te permite conectarte a un servidor sshd y usar redirección de puertos, redirección X11, transferencia de archivos, etc. además puedes integrar dichas funcionalidades a tus propios programas en Java. Esta librería se encuentra licenciada bajo la licencia BSD.
Puedes usar el siguiente código para remover un archivo de un servidor remoto con java usando la librería JSCh:
// Recuerda usar los imports requeridos
import com.jcraft.jsch.*;
/// En tu implementación
try {
JSch ssh = new JSch();
Session session = ssh.getSession("nombreUsuario", "myip90000.ordomain.com", 22);
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
session.setPassword("contraseña");
session.connect();
Channel channel = session.openChannel("sftp");
channel.connect();
ChannelSftp sftp = (ChannelSftp) channel;
// Usa el método rm para eliminar el archivo del directorio remoto, si estas en android no olvides
// eliminar el prefijo "file://" de la URL
sftp.rm("/var/www/remote/myfile.txt");
Boolean success = true;
if(success){
// El archivo ha sido eliminado satisfactoriamente
}
channel.disconnect();
session.disconnect();
} catch (JSchException e) {
System.out.println(e.getMessage().toString());
e.printStackTrace();
} catch (SftpException e) {
System.out.println(e.getMessage().toString());
e.printStackTrace();
}
Este ejemplo muestra como se puede usar el método rm
para eliminar un archivo de un servidor remoto, simplemente necesitas conocer el directorio de dicho archivo. Cabe destacar que debes tener tanto permisos de lectura en el servidor como de escritura en tu entorno local. Recuerda además que esto es solamente un ejemplo, este no incluye ningun tipo de seguridad. Necesitarás añadir un archivo known_hosts si tu servidor usa uno o añadir una llave privada para autenticación.
Este código funciona en cualquier plataforma en la que se pueda ejecutar Java y la librería JSCH (Android, aplicaciones de escritorio etc).
Conviertete en un programador más sociable