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