<div><img src="https://top-fwz1.mail.ru/counter?id=3548135;js=na" style="position:absolute;left:-9999px;" alt="Top.Mail.Ru" /></div>
Публичное облако на базе VMware с управлением через vCloud Director
Вход / Регистрация
На главную
25eb9e0a-a5a8-472a-ace7-940b8bd2adf0
Облачные сервисы

Cyberduck

Cyberduck — это файловый менеджер, который поддерживает протоколы FTP, SFTP, OpenStack Swift и AmazonS3 и позволяет удобно работать, в том числе, с облачными хранилищами. В нашем профиле Cyberduck используется протокол OpenStack Swift.

Установка Cyberduck и подключение к S3

Рассмотрим установку Cyberduck и подключение к S3 в разных операционных системах.

Windows

  1. Скачайте Cyberduck с официального сайта и установите его.
  2. Скачайте файл профиля Timeweb Cloud во вкладке «Дашборд».

Selection 070

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

В поле «Сервер» будет указано s3.twcstorage.ru.

Screenshot 04 01 25 13:43:31

Используйте параметры:

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

Selection 231

  1. Нажмите «Подключиться».

Как только подключение будет установлено, вы увидите список созданных бакетов.

Консольная версия

Также в Windows можно использовать консольную версию Cyberduck. Установить ее можно с помощью менеджера пакетов Chocolatey.

Выполните команду ниже и загрузите последнюю версию установщика.

choco install duck

Скачайте файл профиля Timeweb Cloud в настройках бакета в панели управления и разместите его в директории: %AppData%\Cyberduck\Profiles.

Для перехода в директорию выполните в командной строке:

cd %AppData%\Cyberduck\Profiles

Или, если вы используете PowerShell:

cd $env:AppData\Cyberduck\Profiles

Если директории Profiles не существует, создайте ее:

mkdir %AppData%\Cyberduck\Profiles

Ubuntu

Для Ubuntu доступна консольная версия Cyberduck.

  1. Добавьте репозиторий duck:

echo -e "deb https://s3.amazonaws.com/repo.deb.cyberduck.io stable main" | sudo tee /etc/apt/sources.list.d/cyberduck.list > /dev/null
  1. Скачайте публичный GPG-ключ с keyserver.ubuntu.com:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys FE7097963FEFBE72
  1. Обновите репозиторий:

sudo apt-get update
  1. Установите Cyberduck CLI:

sudo apt-get install duck
  1. Создайте директорию с профилями:

mkdir -p ~/.duck/profiles
  1. Скачайте профиль Timeweb Cloud:
wget -O ~/.duck/profiles/timeweb-cloud.cyberduckprofile https://st.timeweb.com/cloud-static/timeweb-cloud.cyberduckprofile

MacOS

  1. Установите Cyberduck: скачайте его бесплатно с официального сайта проекта или загрузите через App Store (в этом случае утилиту потребуется купить). 
  2. Скачайте файл профиля Timeweb Cloud во вкладке «Дашборд».

Image5

  1. Разместите профиль в директории Profiles по пути:
 ~/Library/Group Containers/G69SCX94XU.duck/Library/Application Support/duck/Profiles
  1. Запустите Cyberduck и выберите профиль Timeweb Cloud Storage.

Image1

  1. Введите реквизиты подключения.

В поле «Сервер» будет указано s3.twcstorage.ru.

Реквизиты можно найти на вкладке «Дашборд».

Selection 231

  1. Нажмите «Подключиться».

Как только подключение будет установлено, вы увидите список созданных бакетов.

Консольная версия

Также можно использовать консольную версию Cyberduck. Установить ее можно с помощью менеджера пакетов Homebrew.

Выполните команду ниже и загрузите последнюю версию установщика.

brew install duck

Создайте директорию с профилями:

mkdir -p ~/.duck/profiles

Скачайте профиль Timeweb Cloud:

wget -O ~/.duck/profiles/timeweb-cloud.cyberduckprofile https://st.timeweb.com/cloud-static/timeweb-cloud.cyberduckprofile

Отображение скрытых файлов

По умолчанию в интерфейсе Cyberduck не отображаются скрытые файлы. 

Чтобы изменить эту настройку, кликните «Вид» → «Показать скрытые файлы» или используйте сочетание клавиш Ctrl+Shift+R (Shift+Cmd+R в MacOS).

Cd1

Скрытые файлы станут доступны для работы:

Cd2

Консольные команды для работы с хранилищем

Команды имеют формат:

duck <опция> <аргумент> timeweb-cloud:/<имя бакета> --username <логин>:swift --password <пароль>

Где:

  • <опция> — дополнительная опция, например, --verbose или --retry.
  • <аргумент> — аргумент утилиты duck. Полный список аргументов и опций можно получить, выполнив duck --help.
  • <имя бакета> — имя бакета, созданного в панели управления.
  • <логин> — логин вашего аккаунта. В параметре username указывается логин аккаунта и swift через двоеточие, например cu27355:swift.
  • <пароль> — Swift Secret Access Key. Его можно скопировать в панели на вкладке «Дашборд».

Например:

duck --list timeweb-cloud:/1d65c254-17ab-4b22-b262-1111fc006937 --username ck42638:swift --password s6dhm6vasfh8v35f234ffs

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

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

duck --list timeweb-cloud:/<имя бакета> --username <логин>:swift --password <пароль>

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

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

duck -d timeweb-cloud:/<имя бакета> --username <логин>:swift --password <пароль>

Редактирование файлов

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

duck --edit timeweb-cloud:/<имя бакета> --username <логин>:swift --password <пароль>

Загрузка файла в бакет

Чтобы загрузить файл в хранилище, используйте --upload:

duck --upload timeweb-cloud:/<имя бакета> <имя локального файла> --username <логин>:swift --password <пароль>

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

Чтобы скопировать файл из одного бакета в другой, используйте --copy и укажите сначала текущее расположение файла, а затем — его желаемое расположение в новом бакете:

duck --copy timeweb-cloud:/<имя бакета>/<путь к файлу> timeweb-cloud:/<имя бакета>/<путь к файлу> --username <логин>:swift --password <пароль>

Резервное копирование файлов

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

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

duck --upload "timeweb-cloud:/${BACKUP_PATH}" "${LOCAL_PATH}" --existing rename --username "${USERNAME}:swift" --password "${PASSWORD}" -q -y

Аргумент  --existing указывает, что нужно делать с существующими файлами.

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

Доступны и другие опции: например, overwrite перезапишет имеющуюся версию файла новой; skip загрузит только новые файлы, появившиеся после последней загрузки, и пропустит повторяющиеся файлы, даже если они были изменены. 

С помощью --existing compare можно выполнять дифференциальное резервное копирование. В этом случае система сравнит загружаемый файл с имеющимся, и если параметры (размер, дата изменения, контрольная сумма) отличаются, то старая версия будет заменена новой.

duck --upload timeweb-cloud:/<имя бакета>/<путь к директории> <путь к локальной директории> --existing compare --username <логин>:swift --password <пароль>

Информацию обо всех доступных опциях можно просмотреть с помощью duck --help.

Синхронизация файлов

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

duck --synchronize timeweb-cloud:/<имя бакета>/<путь к директории> <путь к локальной директории> --username <логин>:swift --password <пароль>

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

#!/bin/bash
USERNAME=<логин аккаунта>
PASSWORD=<пароль администратора хранилища>
BACKUP_PATH=<имя бакета>/<путь к директории>
LOCAL_PATH=<путь к локальной директории>
duck --synchronize "timeweb-cloud:/${BACKUP_PATH}" "${LOCAL_PATH}" --username "${USERNAME}:swift" --password "${PASSWORD}" -q -y

 

Была ли статья полезна?
Ваша оценка очень важна
Пока нет комментариев