Quelle est la meilleure méthode est de faire un scp de transfert via le langage de programmation Java? Il semble que je peut être en mesure d'effectuer cette via JSSE, JSch ou le château gonflable bibliothèques java. Aucune de ces solutions ne semblent avoir une réponse facile.
Réponses
Trop de publicités?J'ai fini par utiliser Jsch- il était assez simple, et semblait échelle assez bien (j'ai été saisissant quelques milliers de fichiers en quelques minutes).
plug: sshj est le seul choix sain! Voir ces exemples pour commencer: télécharger, télécharger.
Jetez un oeil ici
C'est le code source pour les Fourmis' SCP tâche. Le code de la méthode "execute" est l'endroit où les écrous et les boulons. Cela devrait vous donner une idée juste de ce qui est nécessaire. Il utilise JSch je crois.
Sinon vous pouvez aussi directement à l'exécution de cette tâche Ant à partir de votre code java.
J'ai enveloppé Jsch avec quelques méthodes utiles pour le rendre un peu plus convivial, et l'a appelé
Jscp
Disponible ici: https://github.com/willwarren/jscp
SCP utilitaire tar un dossier zip, et scp-il quelque part, puis décompressez-le.
Utilisation:
// create secure context
SecureContext context = new SecureContext("userName", "localhost");
// set optional security configurations.
context.setTrustAllHosts(true);
context.setPrivateKeyFile(new File("private/key"));
// Console requires JDK 1.7
// System.out.println("enter password:");
// context.setPassword(System.console().readPassword());
Jscp.exec(context,
"src/dir",
"destination/path",
// regex ignore list
Arrays.asList("logs/log[0-9]*.txt",
"backups")
);
Comprend également des classes utiles - Scp et Exec, et un TarAndGzip, qui fonctionnent à peu près de la même façon.
Le projet openssh listes de plusieurs Java alternatives, Trilead SSH pour Java semble correspondre à ce que vous me demandez.