1

J'utilise stfp sink et j'essaie de nommer le fichier distant en fonction de l'en-tête. Je fournirai la propriété suivante pour nommer le fichier sur la télécommandespring-cloud-starter-stream-sink-sftp Évier Sftp, l'expression de fichier ne fonctionne pas

sftp.file expression = payload.headers [ 'id'] + payload.headers [ 'nom_fichier']

J'ai aussi essayé sftp.file- expression = headers ['id'] + en-têtes ['nom_fichier']

mais ceux-ci ne fonctionnent pas et à distance le nom de fichier d'origine est conservé. Est-ce la bonne façon d'écrire l'expression SpEL. Aussi je ne reçois pas d'erreur avec cette propriété à l'exception du prope

Répondre

1

Doit être sftp.filename-expression:

sftp.filename expression

  A SpEL expression to generate the remote file name. (Expression, default: <none>) 

http://docs.spring.io/spring-cloud-stream-app-starters/docs/Bacon.RELEASE/reference/html/spring-cloud-stream-modules-sinks.html#_options_50

+0

Quelle surveillance, merci de le signaler, je vais essayer cela. Toute suggestion de ce qui est la bonne façon d'obtenir des valeurs de l'en-tête, payload.headers ['id'] ou en-têtes ['id']. – gamepop

+1

L'objet racine du contexte d'évaluation est 'Message' avec les méthodes' getPayload() 'et' getHeaders() '. Donc, pour atteindre les en-têtes, vous devriez vraiment utiliser l'expression d'accesseur de propriété 'headers'. Si votre 'payload' a un accesseur' getHeaders() ', aussi, cela ne sera pas surprenant d'avoir' payload.headers ['id'] 'comme SpEL valide aussi. –