SFTP
Общее описание
Блок SFTP обеспечивает доступ к удаленным файловым системам по протоколу SFTP.
Блок SFTP может работать в двух режимах, которые определяются его положением в потоке. Если блок выступает в роли инициатора, он предназначен только для считывания файлов. Если же он используется как блок-отправитель, его функция ограничивается созданием новых файлов и их записью в указанную директорию.
Блок SFTP может использоваться в качестве:
-
блока-отправителя
-
блока-получателя.
Настройка блока
В данном разделе описаны параметры блока SFTP, которые необходимо заполнить при его настройке.
Базовые параметры
| Название в UI | Название атрибута | Описание | Значение по умолчанию | Тип данных |
|---|---|---|---|---|
| Dynamic Endpoint | dynamicEndpoint | Доступен только для блоков-отправителей Позволяет включить встроенную функциональность динамического определения вызываемой конечной точки. При включении структура блока меняется: вместо to используется toD, а значение вызываемого ресурса может собираться из переменной (например, ${header.foo}). | False | Логическое значение |
| Host | host | Обязательный параметр Имя хоста FTP‑сервера. | Строка | |
| Connection | connection | Позволяет выбрать предсозданное подключение к серверу или создать новое с помощью визарда Connection Manager. | Список | |
| Description | description | Краткое описание блока. | Строка | |
| Port | port | Порт FTP‑сервера. | Целое число | |
| Directory Name | directoryName | Начальный каталог. | Строка | |
| Binary | binary | Указывает режим передачи файлов: BINARY или ASCII. По умолчанию используется ASCII. | False | Логическое значение |
| Charset | charset | Задает кодировку файла. Возможные значения:
Заданная кодировка может снизить производительность при конвертации больших сообщений. Если блок используется в качестве отправителя | Строка | |
| Disconnect | disconnect | Определяет, следует ли отключаться от удаленного FTP‑сервера сразу после использования. Отключение затрагивает только текущее подключение. Примечание: Для остановки потока нужно останавливать сам поток, а не использовать эту опцию. | False | Логическое значение |
| Done File Name | doneFileName | Для отправителя: после передачи оригинального файла создается пустой файл с указанным именем. Для получателя: обработка файлов начинается только после появления файла с указанным именем в директории. Поддерживается статическое и динамическое имя (синтаксис: ${file.name} и ${file.name.next} ). | Строка | |
| File Name | fileName | Задает выражение на языке File Language для динамического определения имени файла. Для блока‑получателя используется как фильтр имени файла. Имеет приоритет над системным заголовком CamelFileName. | Строка | |
| Jsch Logging Level | jschLoggingLevel | Задает уровень логирования для JSCH. Возможные значения:
| WARN | Список |
| Passive Mode | passiveMode | Устанавливает пассивный режим соединения. | False | Логическое значение |
| Separator | separator | Задает разделитель пути к файлу в соответствии с ОС. Возможные значения:
| UNIX | Список |
| Delete | delete | Доступен только для блоков-получателей Определяет, должен ли файл удаляться после успешной обработки. При значении true файл будет удален из системы сразу после того, как коннектор завершит его обработку без ошибок. | False | Логическое значение |
| Move Failed | moveFailed | Доступен только для блоков-получателей Определяет действие с сообщением при возникновении ошибки обработки. Указывает, в какую очередь или папку следует переместить сообщение, если его обработка завершилась сбоем. Позволяет организовать отдельную обработку проблемных сообщений. | Строка | |
| Noop | noop | Доступен только для блоков-получателей Режим обработки, при котором входящие сообщения игнорируются без выполнения каких‑либо действий и без генерации ошибок. | False | Логическое значение |
| Pre Move | preMove | Доступен только для блоков-получателей Действие или набор действий, выполняемых перед перемещением сообщения. | Строка | |
| Pre Sort | preSort | Доступен только для блоков-получателей Определяет правила сортировки сообщений перед их основной обработкой. Может учитывать временные метки, приоритеты, идентификаторы или другие атрибуты сообщений. | Строка | |
| Recursive | recursive | Доступен только для блоков-получателей Включает рекурсивную обработку вложенных структур данных. При активации компонент обрабатывает все уровни вложенности; при отключении — только верхний уровень. | False | Логическое значение |
| Send Empty Message When Idle | sendEmptyMessageWhenIdle | Доступен только для блоков-получателей Определяет, следует ли отправлять служебное (пустое) сообщение, если в течение заданного времени не поступило новых данных. | False | Логическое значение |
| Stream Download | streamDownload | Доступен только для блоков-получателей Определяет метод загрузки, который будет применяться, когда не используется локальный рабочий каталог. Если установлено значение параметра True, то внешние файлы передаются в обработку по мере их чтения. Если установлено значение False, то внешние файлы загружаются в память перед отправкой в обработку. Примечание: Если эта опция включена, то нужно установить параметру Stepwise значение False, так как оба параметра не могут быть включены одновременно. | False | Логическое значение |
| Ant Exclude | antExclude | Исключает данные с помощью Ant‑фильтра. При одновременном использовании antInclude и antExclude приоритет имеет antExclude. Можно указать несколько значений через запятую. | Строка | |
| Ant Filter Case Sensitive | antFilterCaseSensitive | Если True, Ant‑фильтр чувствителен к регистру. | True | Логическое значение |
| Ant Include | antInclude | Вставляет данные с помощью Ant‑фильтра. Множественные значения перечисляются через запятую. | Строка | |
| Eager Max Messages Per Poll | eagerMaxMessagesPerPoll | Контролирует активность ограничения maxMessagesPerPoll. Возможные значения:
Сортировка требует больше памяти, так как все данные о файлах хранятся в памяти. | True | Логическое значение |
| Exclude | exclude | Исключает файлы, если имя соответствует шаблону регулярных выражений (с учетом регистра). | Строка | |
| Exclude Ext | excludeExt | Исключает файлы с указанным расширением (без учета регистра). Можно перечислить несколько расширений через запятую. Примечание: Расширение включает все части (например, для mydata.tar.gz расширение — tar.gz ). | Строка | |
| Filter | filter | Подключаемый фильтр ( org.apache.camel.component.file.GenericFileFilter ). Пропускает файлы, если метод accept() возвращает False. | Строка | |
| Filter Directory | filterDirectory | Фильтрует каталог на основе выражений языка Simple (например, по текущей дате: ${date:now:yyyyMMdd} ). | Строка | |
| Filter File | filterFile | Фильтрует файлы на основе выражений языка Simple (например, по размеру: ${file:size} > 5000 ). | Строка | |
| Idempotent | idempotent | Включает функциональность соблюдения идемпотентности для пропуска уже обработанных файлов. По умолчанию используется LRUCache на 1000 записей. Если значение параметра "Noop"=True, то считается, что настройки идемпотентности начинают соблюдаться вне зависимости от выставленного значения в параметре "Idempotent". | False | Логическое значение |
| Idempotent Eager | idempotentEager | Определяет, добавлять ли имя файла в идемпотентный репозиторий сразу или после завершения обработки. | False | Логическое значение |
| Idempotent Key | idempotentKey | Задает пользовательский идемпотентный ключ. По умолчанию — абсолютный путь к файлу. Можно использовать язык File Language (например, idempotentKey=${file:name}-${file:size} ). | Строка | |
| Idempotent Repository | idempotentRepository | Подключаемый репозиторий (org.apache.camel.spi.IdempotentRepository). | Строка | |
| Include | include | Включает в обработку файлы, если имя соответствует шаблону регулярных выражений (с учетом регистра). | Строка | |
| Include Ext | includeExt | Включает файлы с указанным расширением (без учета регистра). Примечание: Расширение включает все части (например, для mydata.tar.gz — tar.gz ). | Строка | |
| Max Depth | maxDepth | Максимальная глубина вложенности при рекурсивной обработке каталога. | 2147483647 | Целое число |
| Max Messages Per Poll | maxMessagesPerPoll | Максимальное количество сообщений для обработки за один опрос. Значение 0 или отрицательное отключает ограничение. | Целое число | |
| Min Depth | minDepth | Минимальная глубина начала обработки при рекурсивной обработке. Возможные значения:
| Целое число | |
| Move | move | Выражение (например, на Simple Language) для динамического формирования имени файла при перемещении после обработки. | Строка | |
| Exclusive Read Lock Strategy | exclusiveReadLockStrategy | Подключаемая блокировка чтения (org.apache.camel.component.file.GenericFileExclusiveReadLockStrategy). | Строка | |
| Read Lock | readLock | Получатель обрабатывает файлы только при наличии исключительной блокировки на чтение. Возможные значения:
| none | Строка |
| Read Lock Check Interval | readLockCheckInterval | Интервал в миллисекундах для блокировки чтения (если она поддерживается). Используется для ожидания между попытками получения блокировки чтения. | 1000 | Целое число |
| Read Lock Delete Orphan Lock Files | readLockDeleteOrphanLockFiles | Применяется, когда Read Lock имеет значение markerFile. Определяет, нужно ли при запуске удалять оставшиеся файлы блокировки чтения (файлы‑маркеры), которые могли остаться в файловой системе после нештатного завершения работы (например, из‑за сбоя JVM). | True | Логическое значение |
| Read Lock Idempotent Release Async | readLockIdempotentReleaseAsync | Определяет, должна ли задача отложенного высвобождения быть синхронной или асинхронной. | False | Логическое значение |
| Read Lock Idempotent Release Async Pool Size | readLockIdempotentReleaseAsyncPoolSize | Количество потоков в запланированном пуле потоков при запуске задач асинхронного высвобождения. | Целое число | |
| Read Lock Idempotent Release Delay | readLockIdempotentReleaseDelay | Время в миллисекундах, на которое следует отложить запуск задачи по высвобождению. | Целое число | |
| Read Lock Idempotent Release Executor Service | readLockIdempotentReleaseExecutorService | Задаёт пользовательский и общий пул потоков для задач асинхронного выпуска. | Строка | |
| Read Lock Logging Level | readLockLoggingLevel | Уровень логирования в случаях, когда не удалось получить блокировку на чтение. Допустимые значения: TRACE, DEBUG, INFO, WARN, ERROR, OFF. | DEBUG | Список (перечисление) |
| Read Lock Marker File | readLockMarkerFile | Определяет, следует ли использовать файл‑маркер с типами блокировки changed, rename или exclusive. По умолчанию файл‑маркер также используется для защиты от получения тех же файлов другими процессами. | True | Логическое значение |
| Read Lock Min Age | readLockMinAge | Применяется, только если значение Read Lock установлено в changed. Позволяет указать минимальный возраст файла (в секундах) перед попыткой получения блокировки на чтение. Например, readLockMinAge=300 означает, что файл должен существовать минимум 5 минут. | 0 | Целое число |
| Read Lock Min Length | readLockMinLength | Применяется, только если значение Read Lock установлено в changed. Позволяет настроить минимальную длину файла (в байтах), при которой возможна блокировка на чтение. | 1 | Целое число |
| Read Lock Remove On Commit | readLockRemoveOnCommit | Применяется, только если значение Read Lock установлено в idempotent. Определяет, следует ли удалять запись имени файла из идемпотентного репозитория, если обработка файла завершилась успешно и изменения сохранены. | False | Логическое значение |
| Read Lock Remove On Rollback | readLockRemoveOnRollback | Применяется, только если значение Read Lock установлено в idempotent. Определяет, следует ли удалять запись имени файла из идемпотентного репозитория, если обработка файла завершилась неудачно и произошёл откат. | True | Логическое значение |
| Read Lock Timeout | readLockTimeout | Опциональный тайм‑аут в миллисекундах для блокировки чтения (если тайм‑аут поддерживается типом блокировки). Если блокировка не предоставлена и тайм‑аут истёк, файл будет пропущен — при следующем запросе попытка обработки повторится. Значение ≤ 0 означает «ждать всегда». | 10000 | Целое число |
| Backoff Error Threshold | backoffErrorThreshold | Количество последовательно полученных ошибок обработки, после которого планировщик переходит в режим пропуска запусков. | Целое число | |
| Backoff Idle Threshold | backoffIdleThreshold | Количество последовательных запросов, которые не привели к созданию или обработке данных (пустые опросы). | Целое число | |
| Backoff Multiplier | backoffMultiplier | Множитель, определяющий, сколько следующих срабатываний планировщика будет пропущено, если достигнуты пороги Backoff Error Threshold или Backoff Idle Threshold. Используется совместно с этими параметрами. | Целое число | |
| Delay | delay | Промежуток времени в миллисекундах до следующего запроса (интервал между опросами). | 500 | Целое число |
| Greedy | greedy | Если True, то после того, как ScheduledPollConsumer сработал и привёл к созданию или обработке данных, он сразу выполнит ещё один опрос (без ожидания интервала delay). | False | Логическое значение |
| Initial Delay | initialDelay | Промежуток времени в миллисекундах до первого запроса (задержка перед стартом опроса). | 1000 | Целое число |
| Repeat Count | repeatCount | Максимальное количество срабатываний планировщика. Нулевое или отрицательное значение означает неограниченное количество срабатываний (постоянный опрос). | 0 | Целое число |
| Run Logging Level | runLoggingLevel | Настройка уровня логирования старта и финиша инициации потока. Допустимые значения: TRACE, DEBUG, INFO, WARN, ERROR, OFF. | TRACE | Список (перечисление) |
| Scheduled Executor Service | scheduledExecutorService | Позволяет настроить пользовательский/общий пул потоков для получателя. По умолчанию у каждого получателя свой однопоточный пул. | Строка | |
| Scheduler | scheduler | Определяет cron‑планировщик из компонентов camel‑spring или camel‑quartz. Для встроенного планировщика используйте spring или quartz. | none | Строка |
| Scheduler Properties | schedulerProperties | Дополнительные свойства для пользовательского планировщика или планировщиков на базе Quartz и Spring. | Строка | |
| Start Scheduler | startScheduler | Определяет, будет ли планировщик запускаться автоматически. | True | Логическое значение |
| Time Unit | timeUnit | Единицы измерения времени для параметров Initial Delay и Delay. Возможные значения:
| Milliseconds | Список |
| Use Fixed Delay | useFixedDelay | Определяет режим выполнения: фиксированная задержка или фиксированная частота. | True | Логическое значение |
| Shuffle | shuffle | Определяет, будет ли список файлов перетасован (отсортирован в случайном порядке). | False | Логическое значение |
| Sort By | sortBy | Встроенная сортировка с использованием языка File Language. Поддерживается вложенная сортировка (например, по имени файла и дате изменения). | Строка | |
| Sorter | sorter | Подключаемый сортировщик (например, класс java.util.Comparator). | Строка |
Расширенные параметры
| Название в UI | Название атрибута | Описание | Значение по умолчанию | Тип данных |
|---|---|---|---|---|
| Fast Exists Check | fastExistsCheck | Если для этого параметра установлено значение true, FTP будет напрямую использовать файл списка, чтобы проверить, существует ли файл. Поскольку некоторые FTP-серверы могут не поддерживать прямое отображение файла, то, если параметр имеет значение False, FTP будет использовать старый способ отображения каталога и проверки существования файла. Этот параметр также влияет на параметр Read Lock в значении changed, чтобы контролировать, выполняет ли он быструю проверку на обновление информации о файле или нет. Это может быть использовано для ускорения процесса, если на FTP-сервере много файлов. | False | Логическое значение |
| Bridge Error Handler | bridgeErrorHandler | Доступен только для блоков-получателей | False | Логическое значение |
| Download | download | Доступен только для блоков-получателей | False | Логическое значение |
| Exception Handler | exceptionHandler | Доступен только для блоков-получателей | Строка | |
| Exchange Pattern | exchangePattern | Доступен только для блоков-получателей
| Список | |
| Ignore File Not Found Or Permission Error | ignoreFileNotFoundOrPermissionError | Доступен только для блоков-получателей | False | Логическое значение |
| In Progress Repository | inProgressRepository | Доступен только для блоков-получателей | Строка | |
| Local Work Directory | localWorkDirectory | Доступен только для блоков-получателей | Строка | |
| On Completion Exception Handler | onCompletionExceptionHandler | Доступен только для блоков-получателей | Строка | |
| Poll Strategy | pollStrategy | Доступен только для блоков-получателей | Строка | |
| Process Strategy | processStrategy | Доступен только для блоков-получателей | Строка | |
| Use List | useList | Доступен только для блоков-получателей
| True | Логическое значение |
| Idempotent Repository | idempotentRepository | Подключаемый репозиторий (
| Строка | |
| Include | include | Используется для включения файлов, если имя файла соответствует шаблону регулярных выражений (при сопоставлении учитывается регистр символов). | Строка | |
| Include Ext | includeExt | Используется для включения файлов, соответствующих расширению файла (без учета регистра).
| True | Логическое значение |
| Chmod | chmod | Доступен только для блоков‑отправителей
| Строка | |
| Chmod Directory | chmodDirectory | Доступен только для блоков‑отправителей
| Строка | |
| Disconnect On Batch Complete | disconnectOnBatchComplete | Доступен только для блоков‑отправителей
| False | Логическое значение |
| Eager Delete Target File | eagerDeleteTargetFile | Доступен только для блоков‑отправителей
| True | Логическое значение |
| Keep Last Modified | keepLastModified | Доступен только для блоков‑отправителей
| False | Логическое значение |
| Lazy Start Producer | lazyStartProducer | Доступен только для блоков‑отправителей
| False | Логическое значение |
| Move Existing File Strategy | moveExistingFileStrategy | Доступен только для блоков‑отправителей
| Строка | |
| Send Noop | sendNoop | Доступен только для блоков-отправителей
| True | Логическое значение |
| Auto Create | autoCreate | Задает автоматическое создание отсутствующих каталогов в имени пути к файлу. Для получателя файла это означает создание начального каталога. Для отправителя файла – это каталог, в который должны быть записаны файлы. | True | Логическое значение |
| Bind Address | bindAddress | Указывает адрес локального интерфейса, к которому должно быть привязано соединение. | Строка | |
| Bulk Requests | bulkRequests | Указывает, сколько запросов может быть обработано одновременно. Увеличение этого значения может немного повысить скорость передачи файлов, но увеличит использование памяти. | Целочисленное значение | |
| Compression | compression | Параметр применяется для того, чтобы использовать сжатие. Укажите уровень от 1 до 10.
| Целочисленное значение | |
| Connect Timeout | connectTimeout | Устанавливает тайм-аут подключения для ожидания установления соединения в миллисекундах, используемый как FTPClient, так и JSCH. | 10000 | Целочисленное значение |
| Exist Dir Check Using Ls | existDirCheckUsingLs | Определяет следует ли проверять наличие существующего каталога с помощью команды LS или CD. | True | Логическое значение |
| Filename Encoding | filenameEncoding | Кодировка, используемая FTP-клиентом при разборе имен файлов. | UTF - 8 | Строка |
| Maximum Reconnect Attempts | maximumReconnectAttempts | Указывает максимальное количество попыток повторного подключения при подключении к удаленному FTP-серверу. Значение параметра 0 отключает эту функциональность. | Целочисленное значение | |
| Proxy | proxy | Задает пользовательский com.jcraft.jsch.Proxy. Этот прокси-сервер используется для получения/отправки сообщений с целевого узла SFTP. | Строка | |
| Reconnect Delay | reconnectDelay | Задержка в миллисекундах до попытки повторного подключения. | 1000 | Длинное целое число |
| Server Alive Count Max | serverAliveCountMax | Устанавливает количество сообщений keep-alive, которые могут быть отправлены без получения каких-либо сообщений от сервера. При достижении этого порогового значения во время отправки сообщений keep-alive соединение будет разорвано. Значение по умолчанию - единица. | 1 | Целочисленное значение |
| Server Alive Interval | serverAliveInterval | Устанавливает интервал в миллисекундах для отправки сообщения keep-alive. Если указано значение ноль, сообщения keep-alive не должны отправляться. Интервал по умолчанию равен нулю. | Целочисленное значение | |
| Server Message Logging Level | serverMessageLoggingLevel | Уровень логирования для сообщений, отправляемых с FTP-сервера.
| DEBUG | Список |
| So Timeout | soTimeout | Устанавливает время ожидания Socket Options для FTP и FTPS в миллисекундах. Рекомендуется установить значение 300000, чтобы избежать зависания соединения. В SFTP этот параметр установлен как тайм-аут для экземпляра сеанса JSCH. | 300000 | Целочисленное значение |
| Stepwise | stepwise | Определяет, следует ли поэтапно изменять каталоги при просмотре файловых структур при выгрузке файлов или при загрузке файла в каталог. Параметр Stepwise нельзя использовать вместе с параметром Stream Download. | True | Логическое значение |
| Throw Exception On Connect Failed | throwExceptionOnConnectFailed | Определяет должно ли быть выдано исключение, если соединение завершилось ошибкой (исчерпано). По умолчанию исключение не выдается и регистрируется запись WARN. | False | Логическое значение |
| Timeout | timeout | Устанавливает время ожидания ответа в миллисекундах. Используется только на FTPClient. | 30000 | Целочисленное значение |
| Disabled | disabled | Доступен только для блоков-отправителей
| False | Логическое значение |
| Pattern | pattern | Доступен только для блоков-отправителей
| Список |
Параметры безопасности
| Название в UI | Название атрибута | Описание | Значение по умолчанию | Тип данных |
|---|---|---|---|---|
| Ciphers | ciphers | Разделенный запятыми список шифров, которые будут использоваться в порядке предпочтения. Возможные названия шифров определены в JCraft JSCH. Некоторые примеры включают в себя: aes128-ctr, aes128-cbc, 3des-ctr, 3des-cbc, blowfish-cbc, aes192-cbc, aes256-cbc. Если не указано иное, будет использоваться список по умолчанию из JSCH. | Строка | |
| Key Exchange Protocols | keyExchangeProtocols | Разделенный запятыми список протоколов обмена ключами, которые будут использоваться в порядке предпочтения. Возможные названия шифров определены в JCraft JSCH. Некоторые примеры включают в себя: diffie-hellman-group-exchange-sha1, diffie-hellman-group1-sha1,diffie-hellman-group14-sha1, diffie-hellman-group-exchange-sha256, ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521. Если не указано иное, будет использоваться список по умолчанию из JSCH. | Строка | |
| Password | password | Пароль для входа в систему. | Строка | |
| Preferred Authentications | preferredAuthentications | Предпочтительные способы аутентификации, которые будет использовать конечная точка SFTP. В качестве примера можно привести следующие: пароль, публичный ключ. Если не указано иное, будет использоваться список по умолчанию из JSCH. | Строка | |
| Private Key File | privateKeyFile | Файл закрытого ключа, предназначенный для того, чтобы конечная точка SFTP могла выполнять проверку закрытого ключа. | Строка | |
| Private Key Passphrase | privateKeyPassphrase | Кодовая фраза файла закрытого ключа, предназначенная для того, чтобы конечная точка SFTP могла выполнить проверку закрытого ключа. | Строка | |
| Public Key Accepted Algorithms | publicKeyAcceptedAlgorithms | Список алгоритмов, принимаемых с открытым ключом разделенный запятыми. Некоторые примеры включают в себя: ssh-dss, ssh-rsa, ecdsa-sha2-nistp256, ecdsa-sha2-nistp384, ecdsa-sha2-nistp521. Если не указано иное, будет использоваться список по умолчанию из JSCH. | Строка | |
| Server Host Keys | serverHostKeys | Список поддерживаемых алгоритмов, разделенных запятыми, для ключа хоста сервера. Некоторые примеры включают в себя: ssh-dss, ssh-rsa, ecdsa-sha2-nistp256, ecdsa-sha2-nistp384, ecdsa-sha2-nistp521. Если не указано иное, будет использоваться список по умолчанию из JSCH. | Строка | |
| Strict Host Key Checking | strictHostKeyChecking | Определяет, следует ли использовать строгую проверку ключа хоста.
| no | Строка |
| Username | username | Имя пользователя, которое будет использоваться для входа в систему. | Строка | |
| Use User Known Hosts File | useUserKnownHostsFile | Если параметр Known Host File явно не настроен, используйте файл хоста из System.getProperty(user.home)/.ssh/known_hosts. | True | Логическое значение |