2017-02-02 6 views
1

я следующая конфигурацию в моем SFTP въездного адаптераКак создать динамический локальный каталог для входящего файла в зависимости от имени файла в весенней интеграции для SFTP адаптера

<int-sftp:inbound-channel-adapter id="sftpInbondAdapter" 
             channel="sftpInboundChannel" 
             session-factory="sftpSessionFactory" 
             filename-pattern="*.DONE" 
             remote-directory="/C:/Users/Desktop"          
             local-directory="D:\Documents1" 
             auto-create-local-directory="false" 
             local-filename-generator-expression="#this" 
             delete-remote-files="false" > 
     <int:poller fixed-rate="1000" task-executor="executor"/> 
    </int-sftp:inbound-channel-adapter> 

Я хочу создать динамический локальный каталог для входящего файла в зависимости от имя файла. Подобно test123.Done - это имя файла, тогда я должен поместить этот файл в свой локальный каталог D: \ Documents1 \ test123 \ test123.Done аналогичным образом. Итак, как создать динамический путь для local-directory = "" в моем sftp во входящем адаптере ???

+0

Поделитесь своим кодом с тем, что вы пробовали –

ответ

1

Вы не можете использовать входящий адаптер для этого.

Для этого вы можете использовать outbound gateways; используйте один, чтобы получить список (ls) удаленного каталога и второй для извлечения (get) каждого файла - он принимает выражение локального каталога и выражение генератора локального имени файла.

SFTP sample uses gateways to list, get, and remove remote files.

+0

Я получил ваш ответ @Gary, и он работает правильно, когда он реализован. – inj3ct0r

+0

@ inj3ct0r вы можете поделиться образцами, я застрял здесь – Hikmat