7
votes

Comment: Apache Camel, fichiers de correspondance Regex

Je suis en train d'expérimenter dans l'obtention de chameaux pour faire des opérations de fichiers et les transmettre à travers le courtier Activemq, ive pris ce projet à partir d'un gars qui a récemment quitté.

Qu'est-ce que j'ai eu jusqu'à présent: P>

    <route id="SVLFTPCOPY">
  <from uri="sftp://*****:*******@********/srv/test/?fileName=*2280.xls&amp;noop=true&amp;idempotent=false"/>
    <to uri="file:/srv/data/test/destination/"/>
    <to uri="activemq:queue:svl.ftp.copy"/>
    </route>


0 commentaires

4 Réponses :


1
votes

Pour ce type de filtrage, je vous recommande d'utiliser le GenericfileFilter


0 commentaires

22
votes

Ouais Vous devez utiliser l'option Inclure / Exclude / Filtrage si vous souhaitez filtrer les fichiers en fonction des modèles. L'option FileName est pour un fichier simple .

Donc, dans votre cas, supprimez l'option Nom de fichier et remplacez-la par Inclure =. * 2280.xsl . L'idée que l'inclusion est basée sur des expressions régulières Java, nous utilisons donc Star Dot pour indiquer WILDCARD. Plus de détails ici: https://camel.apache.org/components/latest/ fichier-composant.html . Le composant FTP hérite 99% des options du composant de fichier, c'est pourquoi je me réfère à la page Wiki de fichier.


4 commentaires

Il serait préférable de mettre à jour la page Wiki de chameau avec une simple regex Java 'Inclure des exemples "et" exclure ".


c'est génial. Cette réponse a sauvé mon temps: l'expression de regex dans l'inclusion devrait avoir poncé avant l'étoile, il semble donc: & include =. * 2280.xsl. Sinon, ça ne fonctionnera pas


Il devrait être. * 2280 \ .xsl ou. * 2280 [.] XSL


Utilisez une simple barre oblique arrière ("\") avant l'extension .xsl pour Java Regex



7
votes

Utilisez l'option Inclure qui utilise Java Expression régulière: xxx

veuillez, pensez le \\ avant le point .

Alternativement, utilisez anticlude : xxx


0 commentaires

1
votes

Dans la mise en oeuvre de la correspondance du nom, le code suivant est utilisé: xxx

afin que vous puissiez tester quelle expression régulière à utiliser. Dans votre cas, je pense . * 2280 \\. XSL est ce que vous devez utiliser.


0 commentaires