Cyberduck — это файловый менеджер, который поддерживает протоколы FTP, SFTP, OpenStack Swift и AmazonS3 и позволяет удобно работать, в том числе, с облачными хранилищами. В нашем профиле Cyberduck используется протокол OpenStack Swift.
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
.
В этом случае используйте параметры:
login:login
.Все реквизиты можно найти в панели на вкладке «Cyberduck».
Кластер s3.timeweb.cloud
Для кластера s3.timeweb.cloud
в поле «Сервер» будет указано swift.timeweb.cloud
.
В этом случае используйте параметры:
swift
через двоеточие, то есть в формате login:swift
.Реквизиты можно найти на вкладке «Cyberduck»:
7. Нажмите «Подключить».
Как только подключение будет установлено, вы увидите список созданных бакетов.
Также в Windows можно использовать консольную версию Cyberduck. Установить ее можно с помощью менеджера пакетов Chocolatey.
Выполните команду ниже и загрузите последнюю версию установщика.
choco install duck
Скачайте файл профиля Timeweb Cloud в настройках бакета в панели управления и разместите его в директории: C:\Program Files\Cyberduck\profiles.
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
. В этом случае используйте реквизиты:
login:login
.Корректные реквизиты можно найти в панели на вкладке «Cyberduck».
Кластер s3.timeweb.cloud
В поле «Сервер» будет указано swift.timeweb.cloud
. В этом случае используйте параметры:
swift
через двоеточие, то есть в формате login:swift
.Реквизиты можно найти на вкладке «Cyberduck».
6. Нажмите «Подключить».
Как только подключение будет установлено, вы увидите список созданных бакетов.
Также можно использовать консольную версию Cyberduck. Установить ее можно с помощью менеджера пакетов Homebrew.
Выполните команду ниже и загрузите последнюю версию установщика.
brew install duck
Скачайте файл профиля Timeweb Cloud и добавьте его в Cyberduck.
Для Linux доступна консольная версия Cyberduck.
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
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys FE7097963FEFBE72
sudo apt-get update
sudo apt-get install duck
mkdir -p ~/.duck/profiles
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
.Например:
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
.Например:
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