Nano Hash - криптовалюты, майнинг, программирование

как установить удаленный каталог в исходящем шлюзе sftp в интеграции java-spring

<int-sftp:outbound-gateway id="sftpOutBound"
    session-factory="sftpSessionFactory"   expression="payload" command="put" request-channel="outboundFtpChannel"
    remote-directory="/tmp/tsiftp" reply-channel="sftpReplyChannel"/>

с помощью приведенного выше xml я могу отправлять файлы и получать ответ. В java, как установить удаленный каталог в SftpOutboundGateway. Если я использую SftpMessageHandler, есть ли возможность получить ответ. Код с комментариями передает файлы, но не отвечает.

 @Bean
@ServiceActivator(inputChannel = "outboundFtpChannel")
public MessageHandler transfertoPeopleSoft(){
 /*  SftpMessageHandler handler = new SftpMessageHandler(sftpSessionFactory());
     handler.setRemoteDirectoryExpression(new LiteralExpression("/tmp/tsiftp"));
     return handler;*/
    SftpOutboundGateway sftpOutboundGateway = new  SftpOutboundGateway( sftpSessionFactory(), "put", "/tmp/tsiftp");
    sftpOutboundGateway.setOutputChannelName("sftpReplyChannel");
    return sftpOutboundGateway;
}

 Exception I am getting is
   exception is org.springframework.expression.spel.SpelParseException: Expression [/tmp/tsiftp] @0: EL1070E: Problem parsing left operand

Спасибо за вашу помощь.


Ответы:


1

Удаленный каталог для SftpOutboundGateway может быть настроен SftpRemoteFileTemplate и его:

/**
 * Set the remote directory expression used to determine the remote directory to which
 * files will be sent.
 * @param remoteDirectoryExpression the remote directory expression.
 */
public void setRemoteDirectoryExpression(Expression remoteDirectoryExpression) {

https://docs.spring.io/spring-integration/docs/5.0.0.RELEASE/reference/html/sftp.html#sftp-rft

Не стесняйтесь поднять JIRA для улучшения по этому вопросу.

Я знаю, что вариант Expression не так полезен, потому что вам нужно использовать SpelExpressionParser или просто LiteralExpression только для простого варианта каталога.

04.01.2018
  • спасибо @artem, я попробую это. Есть ли возможность удалить локальный файл после передачи для команды put. 05.01.2018
  • М-м-м. Нет, нет. Вы можете сделать это как активатор услуги после SftpOutboundGateway выполнения простой File.delete() операции. Исходный файл вы можете хранить в заголовках сообщений, не теряя его между ними. 05.01.2018
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..