Содержание
1. Введение
S3 API — API на базе Amazon S3 API, предназначенный для работы с ресурсами объектного хранилища.
С помощью S3 API можно:
- просматривать информацию о количестве и объеме контейнеров и объектов в рамках аккаунта;
- создавать и удалять контейнеры;
- загружать, просматривать, копировать, перемещать, скачивать и удалять объекты в контейнерах;
- управлять сегментированной загрузкой объектов;
- управлять CORS и т.д.
2. Доступ к S3 API в Selectel
К S3 API возможен только авторизованный доступ.
Для доступа к контейнеру через S3 API у пользователя должна быть роль с доступом к объектному хранилищу,
3. Аутентификация
Аутентификация в S3 API происходит с помощью подписи запросов.
Для формирования подписи потребуются ключи доступа, которые можно получить при выдаче S3-ключа пользователю:
- Access Key ID — значение поля Access key из S3-ключа;
- Secret Access Key — значение поля Secret key из S3-ключа.
4. Как выдать S3-ключ?
Выдавать S3-ключи (EC2-ключи) можно только сервисным пользователям с ролью с доступом в объектное хранилище.
Выдать S3-ключ сервисному пользователю может только Владелец аккаунта или Администратор пользователей.
Получить S3-ключ самостоятельно сервисный пользователь не может.
Для каждого проекта необходимо создавать отдельный ключ. На один проект можно выпустить несколько ключей.
- В панели управления в правом верхнем углу откройте меню (номер аккаунта) и выберите Профиль и настройки.
- Перейдите в раздел Управление пользователями → вкладка Сервисные пользователи.
- Откройте страницу сервисного пользователя.
- В блоке S3 ключи нажмите Добавить ключ.
- Введите имя ключа.
- Выберите проект, для которого будет работать ключ.
- Нажмите Сгенерировать. Будет сгенерировано два значения:
Access key — Access Key ID, идентификатор ключа;
Secret key — Secret Access Key, секретный ключ. - Нажмите Скопировать и сохраните ключ — после закрытия окна его нельзя будет просмотреть.
https://docs.selectel.ru/cloud/object-storage/
5. Настройка прав на хранилище
На контейнер надо выставить класс «холодное» и установить политики доступа как показано на скриншоте ниже.
6. Настройка работы с S3
Для настройки работы Корпоративного сервера 2024 с S3 хранилищем Selectel необходимо добавить секцию «s3» с соответствующими параметрами в файлы:
/opt/r7-office/Api/appsettings.json /opt/r7-office/Processing/appsettings.json
Секция «s3»:
"s3": { "key": "*******************************", "secret": "****************************", "region": "ru-1", "bucket": "diskstorage", "url": "https://s3.ru-1.storage.selcloud.ru" },
Где:
- «key» – Access Key ID, идентификатор ключа;
- «secret» – Secret Access Key, секретный ключ;
- «region» – пул, в котором находится объектное хранилище;
- «bucket» – название контейнера, куда будут сохраняться объекты;
- «url» – домен S3 API с Path-Style адресацией.
7. Перезагрузка сервисов
После внесения изменений в конфигурационные файлы appsettings.json необходимо перезапустить сервисы командой:
supervisorctl restart all
8. Использование
После перезагрузки сервисов созданные и редактируемые файлы на Р7-Диске будут храниться в S3 хранилище Selectel
В объектном хранилище S3 можно наблюдать появление данных файлов
Файлы, созданные ранее, в хранилище не загрузятся и необходима миграция их вручную!