Как работать с хранилищем S3 с помощью утилиты Cyberduck
Хранилище S3, предоставляемое сервисом CLO, обеспечивает облачное размещение и доступ к объектам любых типов. Работать с облачным хранилищем можно с помощью стандартных программных средств доступа к S3, а также с помощью различных утилит, например, программы Cyberduck.
Подключение к хранилищу S3 с помощью утилиты Cyberduck
Чтобы подключить утилиту Cyberduck к хранилищу S3, выполните следующие действия:
- В Личном кабинете перейдите на вкладку Хранилище S3. Создайте нового пользователя.
- Скачайте клиент Cyberduck с официального сайта. Установите программу Cyberduck на ваш компьютер.
- Откройте Cyberduck и нажмите Новое подключение.
Из выпадающего списка вверху выберите пункт Amazon S3. В открывшемся диалоговом окне введите следующие параметры:
- Сервер: storage.clo.ru (не указывая в начале «https://»)
- Порт: 443
- Access key ID: скопируйте сюда поле Идентификатор ключа из меню Доступы, которое появляется в Личном кабинете после создания пользователя хранилища S3
- Secret access key: скопируйте сюда строчку Секретный ключ из меню Доступы (см. предыдущий пункт)
После успешного подключения можно создать закладку для быстрого доступа к хранилищу S3. Для этого в меню выберите Закладка → Новая закладка, или нажмите Ctrl+Shift+B. Чтобы войти через сохраненную закладку, после запуска Cyberduck откройте пункт меню Закладка и выберите нужную закладку для связи с хранилищем S3.
Примечание. Использование закладок экономит время и усилия пользователей утилиты Cyberduck, устраняя необходимость вводить каждый раз данные для соединения с хранилищем S3.
Создание бакета
Чтобы создать новый бакет в хранилище S3 с помощью Cyberduck, щёлкните правой кнопкой мыши на пустом пространстве в рабочем окне утилиты. В открывшемся меню выберите Новая папка или Новое зашифрованное хранилище.
При создании бакета требуется ввести его имя, состоящее из прописных букв латиницей и цифр.
Совет. Используйте зашифрованные бакеты для хранения конфиденциальных данных, таких, как персональная информация пользователей, логи рабочих процессов, код и т.д.
Зашифрованные хранилища создаются с помощью программы Cryptomator, встроенной в приложение Cyberduck. При развёртывании зашифрованного хранилища для него необходимо задать пароль. Кроме того, ввод пароля потребуется при просмотре каталога бакета, а также при любом скачивании или закачивании данных в бакет. В противном случае изменения не сохранятся.
Примечание. Число бакетов, их максимальный объем и максимальное количество объектов в одном бакете ограничены лимитами, заданными при создании пользователя на странице Хранилище S3 в Личном кабинете. Лимиты пользователя можно отредактировать в любой момент из Личного кабинета.
Загрузка объектов в хранилище S3
Для загрузки объекта (например, файла) в хранилище щёлкните правой кнопкой мыши на названии бакета, в котором будет храниться объект. В открывшемся меню выберите Закачать. В открывшемся окне выберите нужный объект и дождитесь окончания загрузки.
По умолчанию Cyberduck оставляет данные об успешных загрузках в окне «Очередь». Удалить их оттуда можно либо вручную с помощью кнопки Убрать, либо воспользовавшись меню Правка → Настройки → Очередь → Удалять из очереди успешно скачанные файлы.
Режим загрузки по частям (multipart upload)
Поскольку в хранилище S3 можно размещать объекты объемом в сотни гигабайт, при передаче данных в хранилище присутствует риск сбоя загрузки из-за нестабильности сетевого соединения. Хранилище поддерживает режим загрузки данных по частям (multipart upload), который позволяет возобновлять загрузку при разрыве соединения. По умолчанию этот режим включен.
Внимание! Прерванные загрузки могут оставлять в хранилище части объектов, не отображаемые по умолчанию в Cyberduck. Эти части объектов занимают место в хранилище, но открыть или модифицировать их невозможно. Чтобы отобразить такие объекты, используйте меню Вид → Показать скрытые файлы, или нажмите Ctrl+Shift+R.
Совет. Удаляйте скрытые файлы, чтобы освободить пространство в хранилище.
Информацию об оставшихся лимитах хранилища можно посмотреть на странице Хранилище S3 в Личном кабинете. Обновление информации происходит с задержкой примерно в две минуты после внесения изменений.
Скачивание объектов
В списке файлов Cyberduck щёлкните правой кнопкой мыши на названии нужного объекта и выберите в контекстном меню Скачать или Скачать в…. Дождитесь, когда скачивание объекта окончится.
Удаление объектов и бакетов из хранилища S3
Для удаления объекта или бакета из хранилища щёлкните на его названии правой кнопкой мыши и выберите Удалить в контекстном меню. Объект будет удалён из хранилища.
Предоставление доступа к объектам в хранилище S3 через Интернет
Временный доступ. Утилита Cyberduck позволяет предоставлять доступ к объектам в вашем хранилище S3 через предварительно подписанный временный URL-адрес. Для этого щёлкните правой кнопкой мыши на нужном файле и выберите в контекстном меню Копировать URL → Pre-signed URL, указав необходимый срок действия временной ссылки. Далее перешлите URL адресату.
Постоянный доступ. Чтобы получить постоянный URL-адрес для доступа к объекту или бакету, воспользуйтесь следующей инструкцией:
- Для бакетов и пользователей, созданных до 23.01.2024 г, получите название тенанта, в котором расположен ресурс (подробнее о тенантах). Посмотреть его можно в строке «Каноничный ID» в данных доступа пользователя:
Выделенный текст на картинке вверху — это название тенанта.
- Назначьте ресурсу, к которому требуется доступ по ссылке, соответствующие права. Для этого в Cyberduck выберите файл, перейдите на вкладку Инфо → Права доступа. По умолчанию доступ ко всем объектам и бакетам приватный (есть только у владельца). Управление списком доступа для всех остальных пользователей осуществляется при нажатии иконки в левом нижнем углу окна:
Чтобы разрешить просмотр объекта для всех, нажмите на иконку и выберите Everyone, далее — выберите значение «READ» из выпадающего списка.
Внимание! Чтобы произошло сохранение новой записи в списке контроля доступа, после её создания необходимо щёлкнуть левой клавишей мыши по любой другой записи в этом же окне.
- Отправьте ссылку на объект. Рабочий URL имеет вид:
https://storage.clo.ru/[имя_тенанта:]имя_бакета/имя_файла
Примечание. Для объектов в бакетах, созданных после 23.01.2024 г, имя тенанта в пути не указывается.
В Cyberduck щёлкните правой кнопкой мыши на названии нужного файла. В контекстном меню выберите Инфо → Копировать URL → HTTPS URL. Скопированный URL содержит адрес хранилища, имя бакета и имя объекта в path-style:
https://storage.clo.ru/имя_бакета/имя_файла
Для получения корректной ссылки на постоянный URL необходимо дописать к указанной строке адрес тенанта, полученный в пункте 1.
Пример. https://storage.clo.ru/glossy_lush_shellfish:test3/pic1.jpg
Списки контроля доступа (ACL). Права и роли
В программе Cyberduck права в списках контроля доступа (ACL) задаются для того, чтобы контролировать доступ различных пользователей к ресурсам хранилища. С помощью списков контроля доступа настраиваются возможности конкретного пользователя: редактирование данных хранилища, просмотр информации и разрешение на удаление файлов.
Права доступа представлены в виде двух параметров: Grantee и Permission.
Примечание. Рекомендуется давать пользователю только те привилегии, которые являются абсолютно необходимыми для того, чтобы пользователь мог выполнять свою часть работы с данными.
Параметр Grantee определяет, кто именно сможет работать с ресурсом. Основные значения этого параметра в Cyberduck:
Владелец (owner) | Непосредственно создатель проекта |
Everyone | Кто угодно в интернете |
Canonical User ID | Конкретный пользователь в хранилище S3. Для каждого объекта в облаке пользователь может установить права доступа для любого пользователя, используя каноничный ID. |
Параметр Permission указывает, какие операции будут разрешены для пользователя:
На уровне бакета | На уровне файла | |
READ | позволяет получать список объектов в бакете | позволяет загружать файл |
WRITE | позволяет создавать, удалять, перезаписывать объекты в бакете | неприменимо |
FULL_CONTROL | позволяет совершать любые действия над бакетом | позволяет совершать любые действия над объектом |
READ_ACP | позволяет просматривать список контроля доступа бакета | позволяет просматривать список контроля доступа объекта |
WRITE_ACP | позволяет изменять список контроля доступа бакета | позволяет изменять список контроля доступа объекта |
Распространённые ошибки утилиты Cyberduck при работе с хранилищем S3
- TooManyBuckets. При создании очередной папки утилита Cyberduck возвращает ошибку вида:
Причина — достигнут лимит по количеству бакетов в проекте. Увеличить лимит доступных бакетов вы можете в любой момент в Личном кабинете на вкладке Изменить лимиты.
Максимальное доступное количество бакетов в хранилище S3 — 1000.
- QuotaExceeded. Если суммарный объем файлов в проекте превысит лимит максимального объема данных, то Cyberduck отображает ошибку:
Текущая загрузка объекта при этом останавливается. Загрузка продолжится автоматически после увеличения лимита максимального объема данных проекта.
Примечание. Данная ошибка также возникает в случае, когда достигнут лимит по количеству объектов. В этом случае для устранения ошибки необходимо увеличить или полностью снять лимит на количество объектов.
- UserSuspended. Если пользователь хранилища S3 отключен через Личный кабинет, программа Cyberduck возвращает ошибку «UserSuspended».
Для устранения этой проблемы требуется вновь включить пользователя в Личном кабинете.
- Утилита Cyberduck меняет тип подключения с Amazon S3 на WebDAV. Протокол WebDAV работает как надстройка над HTTPS. Приложение автоматически устанавливает данный тип подключения, если пользователь вводит «https://» в строку «сервер» в окне нового подключения. Для устранения проблемы всегда вводите адрес хранилища без указания протокола:
storage.clo.ru
Дополнительная информация. Вкладки окна «Инфо» утилиты Cyberduck
- Основные. Содержит общую информацию об объекте (бакете), включая его название, размер и дату создания. При нажатии Calculate утилита Cyberduck пересчитывает и отображает актуальный размер объекта или общий объём бакета
- Versions. Можно посмотреть список версий конкретного объекта, а также вернуться к выбранной версии из списка. Чтобы просматривать и управлять версиями, требуется поставить галочку на вкладке S3 → Versioning → Bucket versioning
Примечание. Предыдущие версии объекта занимают место в хранилище и отображаются как скрытые объекты. Хранение нескольких версий объекта в хранилище S3 может быть причиной уменьшения свободного места для данных
- Права доступа. Управление списками контроля доступа (ACL)
- Мета-данные. Управление парами тегов «ключ:значение», задающими различные параметры хранилища
- Distribution (CDN). В данный момент сервис CLO не работает с функционалом, представленным на этой вкладке
- S3. На этой вкладке используется функция Bucket versioning (см. выше)