FTP-интерфейс Облачного хранилища

File Transfer Protocol является одним из старейших протоколов передачи данных, однако используется и в настоящее время. Особенностью протокола является то, что для работы используется два соединения:

  • управляющее, по которому передаются команды и ответы на них;

  • соединение для передачи данных.

Все команды и ответы передаются с помощью протокола Telnet и представляют собой текстовые строки. Для соединения используется стандартный порт 21.

Наше облачное хранилище использует только пассивный режим передачи данных. Процесс установления соединения и передачи данных инициируется исключительно со стороны клиента.

Поддерживаемые FTP-команды

Авторизация

Команда

Аргументы

Обозначение

USER

имя пользователя

Передать имя пользователя

PASS

пароль

Передать пароль

Защита

Команда

Аргументы

Обозначение

AUTH

не требуются

Установить защищенное TLS-соединение. Аргументы будут проигнорированы

PROT

P | C

Установить режим защиты. P for Private, C for Clean. По умолчанию P будет использовать TLS

PBSZ

размер буфера

Установить размер буфера защиты. Бесполезная команда, сервер ответит 200 OK

Разное

Команда

Аргументы

Обозначение

FEAT

не требуются

Отобразить список поддерживаемых дополнительных функций

SYST

не требуются

Отобразить операционную систему сервера

NOOP

не требуется

Пустая операция, сервер в ответ передаст 200 ОК

OPTS

согласно RFC2389

Передать серверу дополнительные опции

Доступ к файлам

Команда

Аргументы

Обозначение

SIZE

имя файла

Получить размер файла

STAT

не требуются

Получить статистику соединения

MDTM

путь

Получить дату и время изменения файла.

RETR

имя файла

Скачать файл. Сработает только после перехода в пассивный режим командой PASV

STOR

имя файла

Загрузить файл в пассивном режиме

APPE

имя файла

Сообщить серверу принять удаленный файл. Команда сработает только если такого файла еще не существует в хранилище.

Если файл существует, то будет возвращена ошибка

DELE

имя файла

Удалить файл

RNFR

имя файла

Выбрать файл для переименования

RNTO

новое имя файла

Задать новое имя файла. Только после того как был выбран командой RNFR

ALLO

размер в байтах

Вернуть ответ о наличии доступного места. Вне зависимости от аргумента ответ будет 202 OK

REST

смещение в байтах

Команда “перемотки” к определенной позиции в файле. Бесполезная команда

Работа с директориями

Команда

Аргументы

Обозначение

CWD

имя директории

Перейти в указанную директорию

PWD

не требуются

Показать текущий рабочий каталог

CDUP

не требуются

Перейти в родительскую директорию

NLST

не требуются

Возвратить список файлов директории в более кратком формате чем LIST. Только в режиме пассивного соединения

LIST

путь

Вывести содержимое текущей директории

MLSD

путь

Вывести содержимое текущей директории.

Главное отличие от LIST - метки времени с точностью до секунды, время указывается в UTC

MKD

имя директории

Создать директорию

RMD

имя директории

Удалить директорию

Установление соединения

Команда

Аргументы

Обозначение

TYPE

A | I

Сменить режим передачи данных. Имеется два варианта - ASCII(A) или Binary(I).

Любой аргумент игнорируется, команда используется для обратной совместимости. Поддерживается только Binary-режим

PASV

не требуются

Перейти в пассивный режим передачи данных

EPSV

не требуются

Инициировать соединение для передачи данных в пассивном режиме. В ответ сервер передаст номер порта для соединения.

EPRT

версия протокола | адрес | порт

Инициировать соединение для передачи данных.

Команда исключительно для активного режима передачи данных, поэтому на эту команду сервер сообщит, что активный режим не поддерживается

PORT

не требуются

Перейти в активный режим передачи данных.

Команда исключительно для активного режима передачи данных, поэтому на эту команду сервер сообщит, что активный режим не поддерживается

QUIT

не требуются

Отключиться от сервера