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

Передача файлов по FTP

FTP — это протокол передачи файлов по сети, работающий по принципу «клиент-сервер». После подключения к удаленному серверу клиент может загружать, скачивать, перемещать, переименовывать и удалять файлы на сервере.

Принцип работы

Для работы протокола используются два соединения — управляющее (по которому передаются команды) и соединение для передачи данных (по которому передаются файлы).

Существуют два режима соединения с FTP-сервером: активный и пассивный. Их главное отличие в том, кто инициирует соединение для передачи данных — клиент или сервер.

В активном режиме клиент создает управляющее соединение с сервером и передает ему свой IP-адрес и номер порта для передачи данных. Сервер открывает соединение на указанном порте и начинает передачу.

В пассивном режиме клиент инициирует как управляющее соединение с сервером, так и подключение для передачи данных. Сервер сообщает клиенту свой IP-адрес и номер порта, после чего клиент открывает соединение на указанном порте и начинает передачу.

Безопасность соединения

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

  • FTPS: использует криптографические протоколы SSL/TLS для шифрования данных. Требует наличия SSL/TLS-сертификата на сервере, а также поддержки SSL/TLS клиентом.
  • SFTP: использует сетевой протокол SSH для обеспечения безопасности передачи данных (подробнее см. Работа с SSH и SFTP).

Типы для работы с FTP

Для обмена файлами по FTP предназначены следующие типы:

  • СоединениеFtp — позволяет подключаться к серверу по FTP/FTPS, устанавливать активное/пассивное соединение, управлять файлами на сервере.
  • ФайлFtp — предоставляет информацию о файле или каталоге, размещенном на сервере.
  • ИсключениеFtp — исключение, которое выбрасывается при возникновении ошибки во время работы с FTP.

Примеры

Загрузка файла на сервер по FTP

метод ЗагрузитьФайл(Файл: Файл, Пользователь: Строка, Пароль: Секрет)
исп Ftp = новый СоединениеFtp("127.0.0.1", Пользователь, Пароль)
// Каталог на сервере, в который будет загружен файл
знч Каталог = "/data/"
Ftp.Поместить(Файл, Каталог)
;

Скачивание файла с сервера по FTP

метод СкачатьФайл(Пользователь: Строка, Пароль: Секрет)
исп Ftp = новый СоединениеFtp("127.0.0.1", Пользователь, Пароль)
// Файл на сервере, который необходимо скачать
знч Файл = "/data/reports/report1.xml"
// Каталог на локальном компьютере, в который будет сохранен файл
знч Каталог = "C:\\Reports"
Ftp.Получить(Файл, Каталог, Таймаут = )
;

Подключение к серверу по FTPS

Для создания защищенного соединения в конструкторе типа СоединениеFtp дополнительно задайте следующие параметры:

  • ИспользоватьSsl: равно Истина,
  • ПараметрыЗащиты: укажите экземпляр типа ПараметрыЗащищенногоСоединения, содержащий настройки защищенного соединения. По умолчанию в качестве хранилища доверенных сертификатов для аутентификации сервера используется хранилище сертификатов операционной системы СистемноеХранилищеСертификатов.
метод ПодключитьсяПоFtps(Пользователь: Строка, Пароль: Секрет)
// Настройка FTPS-соединения с параметрами защиты по умолчанию
исп Ftps = новый СоединениеFtp(Сервер = "127.0.0.1", Пользователь = Пользователь, Пароль = Пароль,
ИспользоватьSsl = Истина, ПараметрыЗащиты = новый ПараметрыЗащищенногоСоединения())
// Работа с файлами на сервере
знч СписокФайлов = Ftps.ПолучитьСписокФайлов("/data")
;