Quiero utilizar SFTP en mi proyecto de Android. ¿Android ya tiene una biblioteca SFTP , o tengo que implementarlo?Biblioteca Android STFP
10
A
Respuesta
5
Uso andFTP para las transferencias de sftp pero no es de código abierto.
Puede marcar connectBot. Hay un problema sobre sftp transfers.
4
Sí, edtFTPj/PRO es una biblioteca comercial de Java que funciona en Android y es compatible con SFTP (además de FTP y FTPS).
0
Puede usar jsch.
Gradle:
compile group: 'com.jcraft', name: 'jsch', version: '0.1.54'
Proguard (I do mantenerlo pública e ignorar las advertencias solución fácil, una exageración decido no meterse con él aquí..). Si conoce la solución correcta, hágamelo saber.
-keep class com.jcraft.jsch.jce.*
-keep class * extends com.jcraft.jsch.KeyExchange
-keep class com.jcraft.jsch.**
-keep class com.jcraft.jzlib.**
-keep class com.jcraft.jsch.jce.*
-keep class com.jcraft.jzlib.ZStream
-keep class com.jcraft.jsch.Compression
-keep class org.ietf.jgss.*
-dontwarn org.ietf.jgss.**
-dontwarn com.jcraft.jsch.**
código:
// add correct exception-handling; remember to close connection in all cases
public void doUpload(String host, String user, String password, String folder, int port, File file){
JSch jsch = new JSch();
Session session = jsch.getSession(user, host, port);
session.setPassword(password);
java.util.Properties config = new java.util.Properties();
//Don't do it on Production -- makes it MITM-vulnerable
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
session.setTimeout(5000);
session.setConfig("PreferredAuthentications", "password");
session.connect();
Channel channel = session.openChannel("sftp");
channel.connect();
ChannelSftp channelSftp = (ChannelSftp) channel;
String home = channelSftp.getHome();
if (folder == null || folder.length() == 0 || "/".equals(folder)) {
folder = home;
} else {
File file = new File(new File(home), folder);
folder = file.getPath();
}
channelSftp.cd(folder);
try (BufferedInputStream buffIn = new BufferedInputStream(new FileInputStream(file.getPath()))) {
ProgressInputStream progressInput = new ProgressInputStream(buffIn, progressListener, file.length());
channelSftp.put(progressInput, file.getName());
}
channelSftp.disconnect();
session.disconnect();
}
Cuestiones relacionadas
- 1. Biblioteca Android Media Player
- 2. Biblioteca SNMP para Android
- 3. biblioteca carrusel para android
- 4. Android biblioteca proyectos personalizados compilaciones
- 5. núcleo Android error de biblioteca
- 6. Android: ¿Hay alguna biblioteca de PDF gratuita para Android?
- 7. Falta la biblioteca compartida en Android.
- 8. Biblioteca de reconocimiento facial en Android
- 9. Carrusel de Android Biblioteca de terceros
- 10. Biblioteca ePub para java o android
- 11. Android - error al cargar la biblioteca
- 12. Biblioteca lineal de álgebra para Android
- 13. depuración de código nativo en Android Biblioteca
- 14. Biblioteca de mapas 3D para Android
- 15. Biblioteca Android frente a jar externo
- 16. cualquier biblioteca pdf417 para Android SDK?
- 17. Jar Proyecto Biblioteca Android + IntelliJ IDEA 11
- 18. Cómo enviar la biblioteca para Android
- 19. ¿Biblioteca de validación de formularios para Android?
- 20. Cómo probar un proyecto de biblioteca Android
- 21. Proyecto de biblioteca Android: ¿cómo obtener contexto?
- 22. Biblioteca de procesamiento de imágenes para Android?
- 23. Android: uso de SharedPreferences en una biblioteca
- 24. Biblioteca Android NDK: findLibrary devuelto nulo
- 25. Android - getIdentifier siempre devuelve 0 (biblioteca + aplicación)
- 26. Android Lint: ignorar proyectos de biblioteca
- 27. Android - Agregar una biblioteca externa al proyecto
- 28. ¿Hay una buena biblioteca yaml para Android?
- 29. Android: El uso de la biblioteca ActionBarSherlock
- 30. Android ICA de validación de formularios biblioteca
Hola Macarse que THNK su respuesta. Pasé por el cliente de código abierto SSH de connectbolt en android. ¿Ahora quiero preguntar si puedo integrar FTP y connectbolt SSH para formar mi SFTP? ¿Qué tan factible sería teniendo en cuenta que no sé mucho de los aspectos internos de SSH. Gracias de antemano. –
Creo que lo van a agregar, pero aún no está allí. Publique un comentario sobre el tema y solicítelo. – Macarse