J'ai besoin de transférer des fichiers sur mon serveur Web pour le traitement et j'aimerais le faire de manière générique si possible.
Je dois pouvoir transférer des fichiers des protocoles suivants au minimum (avec plus Suivre finalement): P>
HTTP
Ftp
SCP P>
J'aimerais vraiment pouvoir envoyer des fichiers à SMTP également p>
Donc, ma question, y a-t-il une boîte à outils disponible qui le fait déjà? Si tel est le cas, il doit être open source car cela fait partie d'un projet open source. P>
S'il n'y a pas de boîte à outils qui le fait déjà, quelle est la meilleure façon de structurer une interface qui va gérer la plupart transferts de fichier? p>
J'ai pensé à quelque chose comme ceci: p> puis une usine qui prend l'URL source ou le protocole et instancie le fichier correct gestionnaire. p> p>
4 Réponses :
Apache Commons VFS parle à ce problème, bien qu'un chèque rapide ne montrait pas cela fera SCP ou SMTP. Net de la communication SMTP, mais je ne sais pas que vous pourriez obtenir l'interface commune de la boîte. Pour SCP , voici quelques possibilités. P>
La ligne finale semble être de vérifier la mise en œuvre de VFS et de voir si elle vous fait quelque chose pour vous, peut-être que vous pouvez l'étendre pour différents protocoles. Si ce n'est pas approprié, concernant votre interface, vous allez probablement vouloir que toutes les références de fichiers distants soient des chaînes plutôt que des objets de fichier, et spécifiquement une chaîne représentant une URI pointant vers l'emplacement distant et vous indiquant quel protocole à utiliser. < / p>
Il peut être nécessaire d'utiliser plusieurs bibliothèques, car on ne soutiendra probablement pas tout ce que vous voulez. VFS prend en charge SFTP, mais pas SMTP.
Je travaille très très similaire à la vôtre, je n'ai pas trouvé de solution open source, alors j'essaie d'esquisser une solution moi-même. C'est ce que j'ai trouvé.
Je pense que vous devriez représenter InputSources et SortiSources comme des choses différentes, comme p> alors vous devez avoir un mouvement pour décrire la saisie de la sortie. P> une classe pour décrire la liste des mouvements à faire. p> puis une classe pour effectuer le travail lui-même. p> le code qui utiliserait cela fonctionnerait comme ça : P> FileMover fm=new FileMover();
//Register your sources and your destinations
fm.addInputToRegistry(input);
fm.addOutputToRegistry(output)
// each time you have to make a movement create a MovementDescriptor and call
fm.transferFiles(movementDescriptor)
Avez-vous réussi à obtenir ce travail? Je suis intéressé par vos progrès alors que je regarde quelque chose de similaire
Malheureusement, je n'avais pas le temps d'y aller beaucoup depuis, mais je me souviens d'avoir fait un petit prototype qui était efficace
Veuillez utiliser JCRAFT. Ouvrez le canal "SFTP" et essayez cela. P>
Cela doit-il être open source ou êtes-vous prêt à payer une solution?
Mon projet est lui-même open source. Ainsi, j'ai besoin d'une solution ouverte ou de rouler le mien. J'ai commencé à intégrer Apache VFS.