Cyberduck

Утилита Cyberduck— удобный файловый менеджер для MacOS, Linux и Windows, работающий с протоколами FTP, SFTP, WebDAV, OpenStack Swift и AmazonS3. Программа может использоваться в качестве FTP и SFTP-клиента, а также для работы с различными сервисами облачного хранения данных.

Версии для скачивания:

Примечание: для подключения к Облачному хранилищу по протоколу SFTP используйте хост sftp.selcdn.ru, логин/пароль из панели управления и порт 22.

Установка графического клиента

Windows

Специально для пользователей клиента Cyberduck существует профиль для работы с Облачным хранилищем, котороый использует протокол Swift вместо FTP. Для загрузки профиля:

  1. Скачайте файл профиля.
  2. Установите клиент Cyberduck Windows, скопировав файл профиля Selectel в папку profiles (по умолчанию она расположена в C:\Program Files (x86)\Cyberduck\profiles).
  3. Запустите Cyberduck и нажмите кнопку Новое подключение.
  4. Выберите профиль Selectel Cloud Storage.
  5. Заполните поле Selectel ID:Username через двоеточие, где:
    • Selectel ID — номер учетной записи панели управления Selectel;
    • Username — имя пользователя Облачного хранилища;
    • имя пользователя и пароль устанавливаются владельцем учетной записи, их можно узнать в личном кабинете в разделе Облачное хранилище → Пользователи. 6.Введите пароль в поле Пароль. 7.Нажмите кнопку Подключиться.

Соединение с хранилищем будет установлено и в открывшемся окне отобразится список доступных контейнеров.

Mac OS

Графическая версия Cyberduck для MacOS устанавливается стандартным способом через Appstore:

  1. Скачайте профиль файл профиля для Selectel и установите в приложение Cyberduck (Cyberduck Mac).
  2. Заполните поле Selectel ID:Username через двоеточие, где:

    • Selectel ID — номер учетной записи панели управления Selectel;
    • Username — имя пользователя облачного хранилища.
  3. Введите пароль в поле Password.

  4. Нажмите кнопку Подключить.

В результате выполненных действий откроется окно со списком доступных пользователю контейнеров.

Linux

Графическая версия Cyberduck для Linux-систем отсутствует.

Установка консольного клиента

Windows

Консольная версия Cyberduck для Windows (Консольная утилита Windows) устанавливается с помощью менеджера пакетов Chocolatey. Введите команду:

choco install duck

Загрузите последнюю версию установщика MSI по ссылке. Подробнее об установке.

Для установки профиля Selectel скопируйте файл профиля в папку profiles (по умолчанию она расположена в C:\Program Files (x86)\Cyberduck CLI\profiles).

Mac OS

Консольная версия Cyberduck для MacOS (Консольная утилита Mac) устанавливается с помощью менеджера пакетов Homebrew:

brew install duck 

Linux

Ниже описана процедура установки для Ubuntu 16.04, пользователям других дистрибутивов рекомендуем обратиться к официальной документации. Для установки консольной версии Cyberduck (утилита Linux Ubuntu 16.04):

  1. Добавьте соответствующий репозиторий:

    echo 'deb https://s3.amazonaws.com/repo.deb.cyberduck.io nightly main' >> /etc/apt/sources.d/cyberduck.list
    echo 'deb https://s3.amazonaws.com/repo.deb.cyberduck.io stable main' >> /etc/apt/sources.d/cyberduck.list
  2. Добавьте ключ:

    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys FE7097963FEFBE72
  3. Выполните команды:

    sudo apt-get update
    sudo apt-get install duck
  4. Скачайте профиль Selectel:

    wget https://static.selectel.ru/kb/selectel-storage.cyberduckprofile
  5. Создайте директорию с профилями:

    mkdir -p .duck/profiles
  6. Переместите скачанный профиль Selectel в директорию с профилями:

    mv 'selectel-storage.cyberduckprofile' .duck/profiles/

Все команды для работы с облачным хранилищем имеют следующий вид, где Selectel ID — номер учетной записи панели управления Selectel, а Username — имя пользователя Облачного хранилища:

duck -аргумент selectel:/<container name> --username <Selectel ID>:<Username> --password <password>

Все возможные аргументы для команды duck можно просмотреть, введя в командную строку:

duck --help

Основные операции с Облачным хранилищем в консоли

Получение списка файлов в контейнере

Чтобы получить список файлов, хранимых в некотором контейнере, используется опция -l (или −−list):

duck -l selectel:/<container name> --username <Selectel ID>:<Username> --password <password>

Результат вывода:

1.pdf
2.jpg
3.png

Примечание: иногда в Linux-системах некорректно отображаются файлы с именами, набранными кириллицей.

Скачивание файла

Для скачивания файла из хранилища используется команда вида:

duck -d selectel:/<container name> --username <Selectel ID>:<Username> --password <password>

Открытие файла для редактирования на локальной машине

С помощью консольной версии CyberDuck можно открывать файлы для редактирования на локальной машине, по завершении редактирования в хранилище будет загружена обновленная (со всеми внесенными изменениями) версия файла. Для этого используется аргумент –edit:

duck --edit selectel:/<container name> --username <Selectel ID>:<Username> --password <password>

Файл будет открыт в приложении, используемом в системе для данного типа файлов. Загрузка измененненной версии начнется автоматически. Эта функция полезна для пользователей, размещающих в Облачном хранилище статические сайты. Для того чтобы, например, быстро отредактировать текст на сайте, достаточно выполнить указанную выше команду, внести изменения в нужные файлы и сохранить их.

Загрузка объекта в хранилище

Операция загрузки выполняется при помощи команды вида:

duck --upload selectel:/<container name> --username <Selectel ID>:<Username> --password <password>

При загрузке объекта нужно указывать полный путь к месту хранения этого самого объекта. Например, если требуется сохранить файл myimage.png в контейнере images, то путь к нему нужно указать так: /images/ myimage.png. Большие (размером более 2ГБ) объекты Cyberduck загружает в хранилище по частям.

Версии объектов и резервное копирование

Консольная версия Cyberduck — инструмент для резервного копирования и архивирования данных.

Допустим, что на локальной машине имеется директория, содержимое которой нужно периодически копировать в Облачное хранилище. Для этого написан специальный скрипт и добавлено задание Cron, которое отправляет резервную копию в хранилище каждый день в указанное время.

Скрипт:

#!/bin/bash
SELECTEL_ID=<номер учетной записи панели управления Selectel>
USERNAME=<имя пользователя Облачного хранилища>
PASSWORD=<пароль пользователя Облачного хранилища>
BACKUP_PATH=<имя контейнера>/<путь к директории>
LOCAL_PATH=<путь к локальной директории>

duck --upload selectel:/<BACKUP_PATH> <LOCAL_PATH> --existing rename --username <SELECTEL_ID>:<USERNAME> --password <PASSWORD> -q -y

Обратите внимание на синтаксис команды duck. В приведенном примере используются ключ --existing, который указывает, что делать с уже имеющимися в хранилище файлами.

Опция rename переименовывает уже имеющуюся резервную копию, добавляя к её имени время и дату.

С помощью cyberduck можно осуществлять и дифференциальное резервное копирование, используя опцию compare:

duck --upload  selectel:/<container name>/<Path To Remote Folder> <Path to a folder on a local machine> --existing compare --username <Selectel ID>:<Username> --password <password>

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

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

Опция overwrite удаляет из хранилища имеющуюся резервную копию и загружает новую.

Синхронизация локальных файлов с файлами в хранилище

Синхронизация файлов — это процесс, в результате которого две директории, одна из которых находится на локальной машине, а другая — в хранилище, будут содержать одинаковый набор файлов в одной и той же версии с наиболее свежей датой изменений. Если на локальной машине какие-либо файлы были изменены, добавлены или удалены, эти же самые файлы будут изменены, добавлены или удалены в хранилище, и наоборот.

Синхронизация выполняется при помощи команды:

duck --synchronize selectel:/<container name>/<Path To Remote Folder> <Path to a folder on a local machine> --username <Selectel ID>:<Username> --password <password>

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

#!/bin/bash
SELECTEL_ID=<номер учетной записи панели управления Selectel>
USERNAME=<имя пользователя облачного хранилища>
PASSWORD=<пароль пользователя облачного хранилища>
BACKUP_PATH=<имя контейнера>/<путь к директории>
LOCAL_PATH=<путь к локальной директории>

duck --synchronize selectel:/<BACKUP_PATH> <LOCAL_PATH> --username <SELECTEL_ID>:<USERNAME> --password <PASSWORD> -q -y

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

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

Копирование файлов

Чтобы скопировать файл из одного контейнера в другой , используется команда вида:

duck --сopy selectel:/<container name>/<full Path to File> selectel:/<container name>/<Path to a New Storage Location> --username <Selectel ID>:<Username> --password <password>

Опция -v

Чтобы на консоль выводилась информация обо всех HTTP-запросах, осуществляемых при выполнении операций с хранилищем, а также об ответах на них, используется опция -v (или –verbose). Это помогает понять, как с хранилищем взаимодействуют сторонние приложения.