Quelle bibliothèque client FTP Java dois-je utiliser? [fermé]


91

Puisque je n'ai reçu aucune réponse positive à ma dernière question. J'essaierai d'écrire moi-même une applet de téléchargement FTP Java.

Ma question est: "Pouvez-vous me recommander une bibliothèque cliente FTP Java?"

Je veux que ce soit:

  • stable
  • capable de gérer les modes passifs et actifs
  • capable de fournir des informations sur la progression du téléchargement
  • lancer des exceptions capturables en cas de problème (surtout lorsqu'un téléchargement échoue)
  • bon marché / gratuit à utiliser, de préférence open source

J'ai trouvé cet aperçu de certaines bibliothèques, mais comme cet article date de 2003, peut-être que de nouveaux développements se sont produits :)

Réponses:


56

Découvrez Apache commons-net , qui contient des utilitaires FTP. Je ne sais pas si cela répond à toutes vos exigences, mais c'est certainement gratuit!


Ce bit d'information est ajouté ici bien qu'il ne soit pas lié à la question - je voulais juste le placer quelque part. commons-net FtpClient n'a toujours pas de support IPv6 (RFC 2438) dans la dernière version 2.0 datée de 2008. La 2.1 est cependant censée l'inclure. Ils ne sortent pas très souvent ...
Moritz Both

2
@Moritz Both: Cela a finalement été corrigé en 2010. Voir issues.apache.org/jira/browse/NET-288 .
sleske

J'essaie d'utiliser la bibliothèque FTP suggérée mais cela pose des problèmes derrière un proxy réseau, des suggestions?
Ashish Sharma

2
La vitesse est plutôt lente avec cette bibliothèque, à la recherche d'une bibliothèque plus rapide.
Tommy Ng

@TommyNg J'ai corrigé le ralentissement en supprimant un quota du serveur FTP et en augmentant la taille du tampon. Peut-être que cela peut vous aider.
gouessej le

17

ftp4j est le meilleur, à la fois pour les fonctionnalités et la licence:

http://www.sauronsoftware.it/projects/ftp4j/


5
L'inconvénient est que ce n'est pas à Maven Central
yegor256

9
Je ne comprends pas pourquoi ne pas télécharger la bibliothèque sur Maven Central ... Est-ce une décision religieuse ou politique?
gavenkoa

2
@gavenkoa si je comprends bien, pour télécharger votre projet sur maven central, vous êtes presque obligé d'utiliser maven comme outil de construction. Si l'on construit avec ant (comme ftp4j), ce n'est pas si facile, et je suppose que l'auteur ne se soucie pas assez de faire en sorte que cela se produise.
Paŭlo Ebermann

1
La collecte de dépendances avec les référentiels Maven est habituelle pour Java (comme pip pour Python, Gems pour Ruby). Même dans Ant, il y a Ivy. Les développeurs n'ont peut-être ni le temps ni l'argent pour effectuer le téléchargement, qui sait?
gavenkoa

@ PaŭloEbermann Non, il est possible d'utiliser Ant comme outil de construction et de télécharger la bibliothèque sur Maven Central, c'est ce que nous faisons pour JogAmp (JOGL, JOAL, JOCL). De plus, vous pouvez avoir votre propre référentiel Maven au lieu d'abuser de la centralisation afin de respecter certaines considérations politiques que je comprends parfaitement.
gouessej

6

Oui, edtFTPj d'EnterpriseDT est stable (sorti pour la première fois en 2000), possède toutes les fonctionnalités dont vous pourriez avoir besoin et est également open source.

Il est utilisé dans de nombreux projets open source (ainsi que dans de nombreux projets commerciaux) et est reconnu comme l' une des bibliothèques client les plus rapides du marché .

Comme l'a noté un autre poster, si vous souhaitez mettre à niveau vers SFTP et / ou FTPS, il s'agit d'un chemin de mise à niveau simple avec très peu de changements de code requis.


Je n'ai pas pu faire fonctionner ftp4j à cause d'une exception IllegalReply. Celui-ci fonctionnait plutôt bien.
anujin

L'article que vous mentionnez comme preuve de la vitesse d'edtFTPj date de 2006. Est vraiment dépassé
ftrujillo

2
Ce package n'est pas gratuit (et très cher) dès que vous avez besoin de fonctionnalités "pro", comme la connexion via un proxy ...
Eric Nicolas


4

Commons-net sûrement. :) La plupart des projets open source l'utilisent de nos jours.

yc


1

J'ai utilisé avec succès la bibliothèque FTP Enterprise DT , qui est gratuite et open source. Je ne peux pas le comparer à d'autres bibliothèques (comme la bibliothèque Apache Commons Net) car je ne les ai pas utilisées. Il fournit un chemin de mise à niveau simple vers SFTP (sur SSH) et FTPS (sur SSL), bien qu'il s'agisse d'un produit commercial payant.


1

Apache commons-nets obtient des mises à jour plus fréquemment récemment, tandis que la bibliothèque Enterprise DT semble se mettre à jour encore plus fréquemment.


0

Je téléchargeais des fichiers vidéo. FTPClient d'Apache a tâtonné, il a téléchargé la vidéo assez rapidement. mais quand j'ai essayé de lire la vidéo, elle a perdu des morceaux au milieu de la vidéo. ftp4j téléchargerait la vidéo entière sans perte.

ftp4j ftw


0

Vous avez également cet article de 2006 qui répertorie différentes options pour les clients FTP.

commons-net est bon, mais FTP-GO peut vous offrir certaines des fonctionnalités les plus avancées que vous recherchez.

kagi Ftp-Go


Le premier lien est mort
gouessej

1
@gouessej Le premier lien n'est pas mort. Le second était. J'ai restauré le lien "FTP-GO".
VonC le

1
Vous avez raison, merci. Vous devez payer des frais de 750 USD pour obtenir le code source de cette API: s
gouessej
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.