Как использовать FTP-интерфейс
File Transfer Protocol является одним из старейших протоколов передачи данных, однако используется и в настоящее время. Особенностью протокола является то, что для работы используется два соединения:
- управляющее, по которому передаются команды и ответы на них;
- соединение для передачи данных.
Все команды и ответы передаются с помощью протокола Telnet и представляют собой текстовые строки. Для соединения используется стандартный порт 21.
Облачное хранилище использует только пассивный режим передачи данных. Процесс установления соединения и передачи данных инициируется исключительно со стороны клиента.
Запись в конец файла не поддерживается. В FTP этот функционал реализуется через команды STOR, RETR после REST > 0. На подобную последовательность FTP-прокси вернёт код ответа 426.
Поддерживаемые FTP-команды приведены ниже.
Обратите внимание! Для подключения к Облачному хранилищу по протоколу SFTP используйте хост sftp.selcdn.ru, логин/пароль из панели управления и порт 22.
Авторизация
Команда |
Аргументы |
Обозначение |
USER |
имя пользователя |
Передать имя пользователя |
PASS |
пароль |
Передать пароль |
Примечание: имя пользователя и пароль уточняйте на странице.
Защита
Команда |
Аргументы |
Обозначение |
AUTH |
не требуются |
Установить защищенное TLS-соединение. Аргументы будут проигнорированы |
PROT |
P / C |
Установить режим защиты. P for Private, C for Clean. По умолчанию P будет использовать TLS |
PBSZ |
размер буфера |
Установить размер буфера защиты. Cервер ответит 200 OK |
Разное
Команда |
Аргументы |
Обозначение |
FEAT |
не требуются |
Отобразить список поддерживаемых дополнительных функций |
SYST |
не требуются |
Отобразить операционную систему сервера |
NOOP |
не требуется |
Пустая операция, сервер в ответ передаст 200 ОК |
OPTS |
согласно RFC2389 |
Передать серверу дополнительные опции |
Доступ к файлам
Команда |
Аргументы |
Обозначение |
SIZE |
имя файла |
Получить размер файла |
STAT |
не требуются |
Получить статистику соединения |
MDTM |
путь |
Получить дату и время изменения файла |
RETR |
имя файла |
Скачать файл. Сработает только после перехода в пассивный режим командой PASV. Поддерживается докачка |
STOR |
имя файла |
Загрузить файл в пассивном режиме |
APPE |
имя файла |
Сообщить серверу принять удаленный файл. Команда сработает только если такого файла еще не существует в хранилище. Если файл существует, то будет возвращена ошибка |
DELE |
имя файла |
Удалить файл |
RNFR |
имя файла |
Выбрать файл для переименования |
RNTO |
новое имя файла |
Задать новое имя файла. Только после того как был выбран командой RNFR |
ALLO |
размер в байтах |
Вернуть ответ о наличии доступного места. Вне зависимости от аргумента ответ будет 202 OK |
REST |
смещение в байтах |
Команда “перемотки” к определенной позиции в файле. Бесполезная команда. Требуется для докачки с помощью RETR |
Работа с контейнерами
Команда |
Аргументы |
Обозначение |
CWD |
имя директории |
Перейти в указанную директорию |
PWD |
не требуются |
Показать текущий рабочий каталог |
CDUP |
не требуются |
Перейти в родительскую директорию |
NLST |
не требуются |
Возвратить список файлов директории в более кратком формате чем LIST. Только в режиме пассивного соединения |
LIST |
путь |
Вывести содержимое текущей или предоставленной директории. Поддерживается как относительный, так и абсолютный путь |
MLSD |
путь |
Вывести содержимое текущей директории. Главное отличие от LIST - метки времени с точностью до секунды, время указывается в UTC |
MKD |
имя директории |
Создать директорию |
RMD |
имя директории |
Удалить директорию |
Установление соединения
Команда |
Аргументы |
Обозначение |
TYPE |
A / I |
Сменить режим передачи данных. Имеется два варианта - ASCII(A) или Binary(I). Любой аргумент игнорируется, команда используется для обратной совместимости. Поддерживается только Binary-режим |
PASV |
не требуются |
Перейти в пассивный режим передачи данных |
EPSV |
не требуются |
Инициировать соединение для передачи данных в пассивном режиме. В ответ сервер передаст номер порта для соединения. |
EPRT |
версия протокола / адрес / порт |
Инициировать соединение для передачи данных. Команда исключительно для активного режима передачи данных, поэтому на эту команду сервер сообщит, что активный режим не поддерживается |
PORT |
не требуются |
Перейти в активный режим передачи данных. Команда исключительно для активного режима передачи данных, поэтому на эту команду сервер сообщит, что активный режим не поддерживается |
QUIT |
не требуются |
Отключиться от сервера |