Cyberduck
Cyberduck — это файловый менеджер, который поддерживает протоколы FTP, SFTP, OpenStack Swift и AmazonS3 и позволяет удобно работать, в том числе, с облачными хранилищами. В нашем профиле Cyberduck используется протокол OpenStack Swift.
Установка Cyberduck и подключение к S3
Windows
1. Скачайте Cyberduck с официального сайта и установите его.
2. В настройках бакета скачайте файл профиля Timeweb Cloud.
3. Разместите профиль в директории profiles (обычно располагается по пути: C:\Program Files\Cyberduck\profiles).
4. Запустите Cyberduck и кликните на «Новое подключение».
5. Выберите профиль Timeweb Cloud Storage.
6. Введите реквизиты подключения.
Кластер s3.timeweb.com
Для кластера s3.timeweb.com
в поле «Сервер» будет указано s3.timeweb.com
.
В этом случае используйте параметры:
- AccountID:AccountID — укажите логин вашего аккаунта через двоеточие, то есть в формате
login:login
. - Пароль — укажите пароль администратора хранилища.
Все реквизиты можно найти в панели на вкладке «Cyberduck».
Кластер s3.timeweb.cloud
Для кластера s3.timeweb.cloud
в поле «Сервер» будет указано swift.timeweb.cloud
.
В этом случае используйте параметры:
- AccountID:swift— укажите логин вашего аккаунта и
swift
через двоеточие, то есть в форматеlogin:swift
. - Пароль — укажите пароль администратора хранилища.
Реквизиты можно найти на вкладке «Cyberduck»:
7. Нажмите «Подключить».
Как только подключение будет установлено, вы увидите список созданных бакетов.
Консольная версия
Также в Windows можно использовать консольную версию Cyberduck. Установить ее можно с помощью менеджера пакетов Chocolatey.
Выполните команду ниже и загрузите последнюю версию установщика.
choco install duck
Скачайте файл профиля Timeweb Cloud в настройках бакета в панели управления и разместите его в директории: C:\Program Files\Cyberduck\profiles.
MacOS
1. Установите Cyberduck: скачайте его бесплатно с официального сайта проекта или загрузите через App Store (в этом случае утилиту потребуется купить).
2. В настройках бакета скачайте файл профиля Timeweb Cloud.
3. Разместите профиль в директории Profiles по пути:
~/Library/Group Containers/G69SCX94XU.duck/Library/Application Support/duck/Profiles
4. Запустите Cyberduck и выберите профиль Timeweb Cloud Storage.
5. Введите реквизиты подключения.
Кластер s3.timeweb.com
В поле «Сервер» будет указано s3.timeweb.com
. В этом случае используйте реквизиты:
- AccountID:AccountID — логин вашего аккаунта через двоеточие, то есть в формате
login:login
. - Password — пароль администратора хранилища.
Корректные реквизиты можно найти в панели на вкладке «Cyberduck».
Кластер s3.timeweb.cloud
В поле «Сервер» будет указано swift.timeweb.cloud
. В этом случае используйте параметры:
- AccountID:swift— укажите логин вашего аккаунта и
swift
через двоеточие, то есть в форматеlogin:swift
. - Пароль — укажите пароль администратора хранилища.
Реквизиты можно найти на вкладке «Cyberduck».
6. Нажмите «Подключить».
Как только подключение будет установлено, вы увидите список созданных бакетов.
Консольная версия
Также можно использовать консольную версию Cyberduck. Установить ее можно с помощью менеджера пакетов Homebrew.
Выполните команду ниже и загрузите последнюю версию установщика.
brew install duck
Скачайте файл профиля Timeweb Cloud и добавьте его в Cyberduck.
Linux
Для Linux доступна консольная версия Cyberduck.
- Добавьте репозиторий duck:
sudo echo 'deb https://s3.amazonaws.com/repo.deb.cyberduck.io nightly main' >> /etc/apt/sources.list.d/cyberduck.list
sudo echo 'deb https://s3.amazonaws.com/repo.deb.cyberduck.io stable main' >> /etc/apt/sources.list.d/cyberduck.list
- Скачайте публичный GPG-ключ с keyserver.ubuntu.com:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys FE7097963FEFBE72
- Обновите репозиторий:
sudo apt-get update
- Установите Cyberduck CLI:
sudo apt-get install duck
- Создайте директорию с профилями:
mkdir -p ~/.duck/profiles
- Скачайте профиль Timeweb Cloud:
wget -O ~/.duck/profiles/timeweb-cloud.cyberduckprofile https://timeweb.cloud/s3/timeweb-cloud.cyberduckprofile
Отображение скрытых файлов
По умолчанию в интерфейсе Cyberduck не отображаются скрытые файлы.
Чтобы изменить эту настройку, кликните «Вид» → «Показать скрытые файлы» или используйте сочетание клавиш Ctrl+Shift+R (Shift+Cmd+R в MacOS).
Скрытые файлы станут доступны для работы:
Консольные команды для работы с хранилищем
Кластер s3.timeweb.com
Команды имеют формат:
duck <опция> <аргумент> timeweb-cloud:/<имя бакета> --username <логин>:<логин> --password <пароль>
Где:
- <опция> — дополнительная опция, например,
--verbose
или--retry
. - <аргумент> — аргумент утилиты
duck
. Полный список аргументов и опций можно получить, выполнивduck --help
. - <имя бакета> — имя бакета, созданного в панели управления.
- <логин> — логин вашего аккаунта.
- <пароль> — пароль администратора хранилища. Его можно скопировать в панели на вкладке «Cyberduck» или «Настройки» (Secret Access Key).
Например:
duck --list timeweb-cloud:/1d65c254-17ab-4b22-b262-1111fc006937 --username ck42638:ck42638--password s6dhm6vasfh8v35f234ffs
Получение списка файлов
Чтобы получить список файлов в бакете, используйте или аргумент --list
или -l
:
duck --list timeweb-cloud:/<имя бакета> --username <логин>:<логин> --password <пароль>
Скачивание файлов
Чтобы скачать файл на локальное устройство, используйте аргумент -d
:
duck -d timeweb-cloud:/<имя бакета> --username <логин>:<логин> --password <пароль>
Редактирование файлов
С помощью аргумента --edit
можно открыть файл для редактирования, внести в него изменения и сохранить, после чего в бакет будет загружена измененная версия файла.
duck --edit timeweb-cloud:/<имя бакета> --username <логин>:<логин> --password <пароль>
Загрузка файла в бакет
Чтобы загрузить файл в хранилище, используйте --upload
:
duck --upload timeweb-cloud:/<имя бакета> <имя локального файла> --username <логин>:<логин> --password <пароль>
Копирование файлов
Чтобы скопировать файл из одного бакета в другой, используйте --copy
и укажите сначала текущее расположение файла, а затем — его желаемое расположение в новом бакете:
duck --сopy timeweb-cloud:/<имя бакета>/<путь к файлу> <имя бакета>:/<имя бакета>/<путь к файлу> --username <логин>:<логин> --password <пароль>
Резервное копирование файлов
Чтобы регулярно отправлять в хранилище копии файлов из определенной директории, вы можете создать задачу Cron и использовать скрипт со следующим содержимым:
#!/bin/bash
USERNAME=<логин аккаунта>
PASSWORD=<пароль администратора хранилища>
BACKUP_PATH=<имя бакета>/<путь к директории>
LOCAL_PATH=<путь к локальной директории>
duck --upload "timeweb-cloud:/${BACKUP_PATH}" "${LOCAL_PATH}" --existing rename --username "${USERNAME}:${USERNAME}" --password "${PASSWORD}" -q -y
Аргумент --existing
указывает, что нужно делать с существующими файлами.
В примере выше используется опция rename
, что позволяет переименовать уже имеющуюся копию, добавив к ней время и дату.
Доступны и другие опции: например, overwrite
перезапишет имеющуюся версию файла новой; skip
загрузит только новые файлы, появившиеся после последней загрузки, и пропустит повторяющиеся файлы, даже если они были изменены.
С помощью --existing
compare можно выполнять дифференциальное резервное копирование. В этом случае система сравнит загружаемый файл с имеющимся, и если параметры (размер, дата изменения, контрольная сумма) отличаются, то старая версия будет заменена новой.
duck --upload timeweb-cloud:/<имя бакета>/<путь к директории> <путь к локальной директории> --existing compare --username <логин>:<логин> --password <пароль>
Информацию обо всех доступных опциях можно просмотреть с помощью duck --help
.
Синхронизация файлов
С помощью --synchronize
вы можете синхронизировать содержимое локальной директории с директорией, размещенной в хранилище. Если файлы в локальной директории были изменены, добавлены или удалены, эти же самые файлы будут изменены, добавлены или удалены в хранилище, и наоборот. В результате синхронизации обе директории будут содержать одинаковый набор файлов в одной и той же версии.
duck --synchronize timeweb-cloud:/<имя бакета>/<путь к директории> <путь к локальной директории> --username <логин>:<логин> --password <пароль>
Чтобы автоматически выполнять синхронизацию и поддерживать копии файлов в хранилище в актуальном состоянии, вы можете создать задачу Cron и использовать скрипт со следующим содержимым:
#!/bin/bash
USERNAME=<логин аккаунта>
PASSWORD=<пароль администратора хранилища>
BACKUP_PATH=<имя бакета>/<путь к директории>
LOCAL_PATH=<путь к локальной директории>
duck --synchronize "timeweb-cloud:/${BACKUP_PATH}" "${LOCAL_PATH}" --username "${USERNAME}:${USERNAME}" --password "${PASSWORD}" -q -y
Кластер s3.timeweb.cloud
Команды имеют формат:
duck <опция> <аргумент> timeweb-cloud:/<имя бакета> --username <логин>:swift --password <пароль>
Где:
- <опция> — дополнительная опция, например,
--verbose
или--retry
. - <аргумент> — аргумент утилиты
duck
. Полный список аргументов и опций можно получить, выполнивduck --help
. - <имя бакета> — имя бакета, созданного в панели управления.
- <логин> — логин вашего аккаунта. В параметре
username
указывается логин аккаунта и swift через двоеточие, напримерcu27355:swift
. - <пароль> — пароль администратора хранилища. Его можно скопировать в панели на вкладке «Cyberduck» или «Настройки» (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:/<имя бакета>/<путь к файлу> <имя бакета>:/<имя бакета>/<путь к файлу> --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
Была ли статья полезна?