Перейти к основному содержимому

FTP-клиент

Загрузка и скачивание файлов, управление удалёнными папками.

Введение​

В свой low-code-фреймворк Netuno интегрировал FTP-клиент, который позволяет подключаться к серверам, отправлять и получать файлы, изменять папки и выполнять другие удалённые операции.

Поддерживает несколько одновременных подключений, а также FTPS.

Это возможно благодаря реализации на Java с открытым исходным кодом Apache Commons Net, которая позволяет Netuno предоставлять эти возможности на всех языках скриптов через ресурс _ftp.

Подробнее о ресурсе FTP в Netuno.

Настройка​

Первым шагом будет настройка данных доступа к FTP, которые Netuno будет использовать для подключения.

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

  • config/_development.json

Проверьте, нет ли уже настроек FTP; если их ещё нет, то в конце файла конфигурации (в формате JSON) добавьте параметры настройки FTP:

config/_development.json
{
...
"ftp": {
"default": {
"enabled": true,
"host": "мой.сервер.net",
"port": 21,
"username": "temp",
"password": "$eCr37"
}
},
...
}

После сохранения изменений достаточно перезапустить Netuno, чтобы применить изменения конфигурации. Это настройки подключения по умолчанию, как указывает имя default.

Можно добавить больше конфигураций подключения FTP, но только одна может быть определена как конфигурация по умолчанию.

Чтобы добавить больше конфигураций подключения FTP, достаточно повторить блок конфигурации по умолчанию и заменить имя default на другое имя по вашему выбору, см. пример:

config/_development.json
{
...
"ftp": {
"default": {
"enabled": true,
"host": "мой.сервер.net",
"port": 22,
"username": "temp",
"password": "$eCr37"
},
"другой": {
"enabled": true,
"host": "мой.другой-сервер.net",
"port": 22,
"username": "temp",
"password": "$eCr37"
}
},
...
}

Конфигурация, аналогичная примеру выше, позволит использовать учётную запись по умолчанию, когда она вызывается следующим образом в коде:

const ftp = _ftp.init()

А чтобы использовать конфигурацию другой, достаточно добавить имя конфигурации как параметр в функцию _ftp.init() следующим образом:

const ftpДругой = _ftp.init("другой")

Если не добавить имя конфигурации как параметр, всегда будет использоваться учётная запись по умолчанию.

Подключение​

Прежде чем что-либо делать, нужно установить FTP-подключение:

ftp.connect()

Рабочая папка​

При выполнении операций по FTP нужно определить, какая папка будет использоваться.

Задав рабочую папку, мы сможем выполнять различные манипуляции относительно этой базовой папки.

Чтобы изменить рабочую папку:

ftp.changeWorkingDirectory("моя/папка/база")

Теперь любая операция будет выполняться в этой папке или относительно неё.

Создание и удаление папок​

Чтобы создать папку, достаточно указать путь к ней:

ftp.createDirectory("временная-папка")
ftp.createDirectory("временная-папка/под-папка")

Чтобы удалить папки:

ftp.deleteDirectory("временная-папка/под-папка")
ftp.deleteDirectory("временная-папка")

Переименование​

Можно переименовывать файлы или папки: передаётся старый путь, а затем новый путь:

ftp.rename("старое-имя", "новое-имя")

Отправка файлов​

Чтобы отправить текстовый файл:

ftp.uploadText("мой-файл.txt", "Привет, FTP! Это моё содержимое...")

Получение файлов​

Чтобы получить текстовый файл:

const содержимоеФайла = ftp.downloadText("мой-файл.txt")
_out.println(содержимоеФайла)

Список элементов в папке​

Выводит всё содержимое папки:

for (const i of ftp.list("путь/папка")) {
if (i.isDirectory()) {
_out.print("Папка: ")
} else if (i.isFile()) {
_out.print("Файл: ")
} else {
_out.print("Другое: ")
}
_out.println(i.getName())
_out.println("<br/>")
}

Возвращает список объектов типа FTPFile.