Cyberduck — это файловый менеджер, который поддерживает протоколы FTP, SFTP, OpenStack Swift и AmazonS3 и позволяет удобно работать, в том числе, с облачными хранилищами. В нашем профиле Cyberduck используется протокол OpenStack Swift.
Установка Cyberduck и подключение к S3
Рассмотрим установку Cyberduck и подключение к S3 в разных операционных системах.
Windows
- Скачайте Cyberduck с официального сайта и установите его.
- Скачайте файл профиля Timeweb Cloud во вкладке «Дашборд».

- Разместите профиль в директории profiles (обычно располагается по пути:
C:\Program Files\Cyberduck\profiles). - Запустите Cyberduck и кликните на «Новое подключение».
- Выберите профиль Timeweb Cloud Storage.
- Укажите Access и Secret Access Key.
В поле «Сервер» будет указано s3.twcstorage.ru.

Используйте параметры:
Реквизиты можно найти на вкладке «Дашборд»:

- Нажмите «Подключиться».
Как только подключение будет установлено, вы увидите список созданных бакетов.
Консольная версия
Также в Windows можно использовать консольную версию Cyberduck. Установить ее можно с помощью менеджера пакетов Chocolatey.
Выполните команду ниже и загрузите последнюю версию установщика.
Скачайте файл профиля Timeweb Cloud в настройках бакета в панели управления и разместите его в директории: %AppData%\Cyberduck\Profiles.
Для перехода в директорию выполните в командной строке:
Или, если вы используете PowerShell:
Если директории Profiles не существует, создайте ее:
Ubuntu
Для Ubuntu доступна консольная версия Cyberduck.
-
Добавьте репозиторий duck:
-
Скачайте публичный GPG-ключ с
keyserver.ubuntu.com:
-
Обновите репозиторий:
-
Установите Cyberduck CLI:
-
Создайте директорию с профилями:
- Скачайте профиль Timeweb Cloud:
MacOS
- Установите Cyberduck: скачайте его бесплатно с официального сайта проекта или загрузите через App Store (в этом случае утилиту потребуется купить).
- Скачайте файл профиля Timeweb Cloud во вкладке «Дашборд».

- Разместите профиль в директории Profiles по пути:
- Запустите Cyberduck и выберите профиль Timeweb Cloud Storage.

- Введите реквизиты подключения.
В поле «Сервер» будет указано s3.twcstorage.ru.
Реквизиты можно найти на вкладке «Дашборд».

- Нажмите «Подключиться».
Как только подключение будет установлено, вы увидите список созданных бакетов.
Консольная версия
Также можно использовать консольную версию Cyberduck. Установить ее можно с помощью менеджера пакетов Homebrew.
Выполните команду ниже и загрузите последнюю версию установщика.
Создайте директорию с профилями:
Скачайте профиль Timeweb Cloud:
Отображение скрытых файлов
По умолчанию в интерфейсе Cyberduck не отображаются скрытые файлы.
Чтобы изменить эту настройку, кликните «Вид» → «Показать скрытые файлы» или используйте сочетание клавиш Ctrl+Shift+R (Shift+Cmd+R в MacOS).
Скрытые файлы станут доступны для работы:
Консольные команды для работы с хранилищем
Команды имеют формат:
Где:
- <опция> — дополнительная опция, например,
--verboseили--retry. - <аргумент> — аргумент утилиты
duck. Полный список аргументов и опций можно получить, выполнивduck --help. - <имя бакета> — имя бакета, созданного в панели управления.
- <логин> — логин вашего аккаунта. В параметре
usernameуказывается логин аккаунта и swift через двоеточие, напримерcu27355:swift. - <пароль> — Swift Secret Access Key. Его можно скопировать в панели на вкладке «Дашборд».
Например:
Получение списка файлов
Чтобы получить список файлов в бакете, используйте или аргумент --list или -l:
Скачивание файлов
Чтобы скачать файл на локальное устройство, используйте аргумент -d:
Редактирование файлов
С помощью аргумента --edit можно открыть файл для редактирования, внести в него изменения и сохранить, после чего в бакет будет загружена измененная версия файла.
Загрузка файла в бакет
Чтобы загрузить файл в хранилище, используйте --upload:
Копирование файлов
Чтобы скопировать файл из одного бакета в другой, используйте --copy и укажите сначала текущее расположение файла, а затем — его желаемое расположение в новом бакете:
Резервное копирование файлов
Чтобы регулярно отправлять в хранилище копии файлов из определенной директории, вы можете создать задачу Cron и использовать скрипт со следующим содержимым:
Аргумент --existing указывает, что нужно делать с существующими файлами.
В примере выше используется опция rename, что позволяет переименовать уже имеющуюся копию, добавив к ней время и дату.
Доступны и другие опции: например, overwrite перезапишет имеющуюся версию файла новой; skip загрузит только новые файлы, появившиеся после последней загрузки, и пропустит повторяющиеся файлы, даже если они были изменены.
С помощью --existing compare можно выполнять дифференциальное резервное копирование. В этом случае система сравнит загружаемый файл с имеющимся, и если параметры (размер, дата изменения, контрольная сумма) отличаются, то старая версия будет заменена новой.
Информацию обо всех доступных опциях можно просмотреть с помощью duck --help.
Синхронизация файлов
С помощью --synchronize вы можете синхронизировать содержимое локальной директории с директорией, размещенной в хранилище. Если файлы в локальной директории были изменены, добавлены или удалены, эти же самые файлы будут изменены, добавлены или удалены в хранилище, и наоборот. В результате синхронизации обе директории будут содержать одинаковый набор файлов в одной и той же версии.
Чтобы автоматически выполнять синхронизацию и поддерживать копии файлов в хранилище в актуальном состоянии, вы можете создать задачу Cron и использовать скрипт со следующим содержимым: