Desidero utilizzare SFTP nel mio progetto Android. Android ha già una libreria SFTP o devo implementarla?Libreria STFP Android
10
A
risposta
5
Io uso andFTP per i trasferimenti sftp ma non è open source.
È possibile verificare connectBot. C'è un problema a sftp transfers.
4
Sì, edtFTPj/PRO è una libreria Java commerciale che funziona su Android e supporta SFTP (oltre a FTP e FTPS).
0
È possibile utilizzare jsch.
Gradle:
compile group: 'com.jcraft', name: 'jsch', version: '0.1.54'
Proguard (io tenerlo pubblico e ignorare gli avvisi soluzione facile, eccessivo scelgo di non pasticciare con essa qui..). Se conosci la soluzione corretta, fammelo sapere. Codice
-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.**
:
// 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();
}
Problemi correlati
- 1. Aspectj con libreria Android
- 2. Libreria OCR Android
- 3. Libreria FTP Android
- 4. Errore libreria fatturazione Android
- 5. Libreria VoIP per Android
- 6. Android Studio Libreria Rendering
- 7. Installazione libreria Android SlidingMenu
- 8. Libreria Redis per Android?
- 9. Libreria SNMP per Android
- 10. Progetto libreria Android Crashlytics
- 11. Font nella libreria Android
- 12. Libreria streaming VLC Android
- 13. Libreria Java SSH per Android?
- 14. equivalente alla libreria Android MGBox2?
- 15. Libreria algebra lineare per Android
- 16. Ignora risorse nella libreria android
- 17. Android: l'uso della libreria ActionBarSherlock
- 18. Come spedire libreria per Android
- 19. Corretto libreria/framework Android Oauth2
- 20. Libreria di elaborazione immagini Android
- 21. Protezione integrità libreria condivisa Android
- 22. android design libreria toolbar shadow
- 23. Come pubblicare la libreria Android su Android Arsenal?
- 24. Aggiungi il progetto Android ZXing come libreria in Android Studio
- 25. Studio Android: come importare il progetto di libreria Android
- 26. Studio Android - Esporta libreria Android con puro gradle
- 27. Come compilare la libreria nativa di Android con Android Studio?
- 28. C'è una buona libreria yaml per Android?
- 29. Android: utilizzo di SharedPreferences in una libreria
- 30. CompletableFuture nella libreria di supporto Android?
Hi Macarse si thnk vostra risposta. Sono passato attraverso il client open source connectbolt SSH su Android. Ora voglio chiedere se posso integrare FTP e connectbolt SSH per formare il mio SFTP ?? Quanto possibile sarebbe considerare che non conosco molto di internals di SSH. Grazie in anticipo. –
Penso che lo aggiungeranno, ma non c'è ancora. Pubblica un commento sul problema e chiedile di uscire. – Macarse