Перейти к основному содержимому
FTP
Последнее изменение:

FTP

Для работы протокола FTP используется два соединения:

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

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

Запись в конец файла не поддерживается — при попытке сделать это вернется код ответа 426.

Данные для подключения

Для подключения к объектному хранилищу по FTP используется:

  • хост ftp.ru-1.storage.selcloud.ru, где ru-1 — пул, в котором размещается объектное хранилище;
  • порт 21.

Аутентификация происходит с помощью S3-ключа — Владелец аккаунта или Администратор пользователей выдает ключ сервисному пользователю. При подключении по FTP поля Access key и Secret key из ключа используются в качестве логина и пароля соответственно.

Настроить FTP

  1. Настройте доступ.
  2. Подключитесь по FTP.

1. Настроить доступ

Настроить доступ может пользователь с ролью Владелец аккаунта или Администратор пользователей.

  1. Создайте сервисного пользователя с ролью с доступом в объектное хранилище: Администратор аккаунта, Администратор проекта, Администратор объектного хранилища. Роль Пользователь объектного хранилища не подходит для работы по FTP.
  2. Выдайте пользователю S3-ключ.

2. Подключиться по FTP

Подключиться на Windows

  1. Откройте Total Commander.
  2. В меню Сеть выберите Соединиться с FTP-сервером.
  3. Нажмите Добавить.
  4. На вкладке Общие в поле Имя соединения введите любое имя (например, Selectel).
  5. В поле Сервер введите ftp.ru-1.storage.selcloud.ru
  6. В поле Учетная запись введите значение поля Access key из S3-ключа.
  7. В поле Пароль введите значение поля Secret key из S3-ключа.
  8. Отметьте чекбокс Пассивный режим обмена (как Web-браузер).
  9. Откройте вкладку Расширенные.
  10. В поле Кодировка имен файлов выберите UTF-8.
  11. Нажмите OK. Профиль будет сохранен.
  12. Нажмите Соединиться.

Подключиться на Linux

  1. С помощью Nautilus откройте любую директорию.
  2. В меню Файл выберите Подключение к серверу.
  3. В поле Адрес сервера введите ftp://ftp.ru-1.storage.selcloud.ru
  4. Нажмите Подключиться.
  5. Выберите пункт Зарегистрированный пользователь.
  6. Введите логин — значение поля Access key из S3-ключа.
  7. Введите пароль — значение поля Secret key из S3-ключа.
  8. Опционально: отметьте чекбокс Запомнить навсегда.
  9. Нажмите Подключиться.

Работа с FTP

Авторизация

КомандаАргументыОбозначение
USERAccess key из S3-ключаПередать логин
PASSSecret key из S3-ключаПередать пароль

Защита

КомандаАргументыОбозначение
AUTHНе требуютсяУстановить защищенное TLS-соединение. Аргументы будут проигнорированы
PROTP / 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Имя директорииУдалить директорию

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

КомандаАргументыОбозначение
TYPEA / IСменить режим передачи данных. Имеется два варианта — ASCII(A) или Binary(I). Любой аргумент игнорируется, команда используется для обратной совместимости. Поддерживается только Binary-режим
PASVНе требуютсяПерейти в пассивный режим передачи данных
EPSVНе требуютсяИнициировать соединение для передачи данных в пассивном режиме. В ответ сервер передаст номер порта для соединения
EPRTВерсия протокола / адрес / портИнициировать соединение для передачи данных. Команда исключительно для активного режима передачи данных, поэтому на эту команду сервер сообщит, что активный режим не поддерживается
PORTНе требуютсяПерейти в активный режим передачи данных. Команда исключительно для активного режима передачи данных, поэтому на эту команду сервер сообщит, что активный режим не поддерживается
QUITНе требуютсяОтключиться от сервера