• Post category:Настройки
  • Запись изменена:22.03.2024

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-ключ самостоятельно сервисный пользователь не может.

Для каждого проекта необходимо создавать отдельный ключ. На один проект можно выпустить несколько ключей.

  1. В панели управления в правом верхнем углу откройте меню (номер аккаунта) и выберите Профиль и настройки.
  2. Перейдите в раздел Управление пользователями → вкладка Сервисные пользователи.
  3. Откройте страницу сервисного пользователя.
  4. В блоке S3 ключи нажмите Добавить ключ.
  5. Введите имя ключа.
  6. Выберите проект, для которого будет работать ключ.
  7. Нажмите Сгенерировать. Будет сгенерировано два значения:
    Access key — Access Key ID, идентификатор ключа;
    Secret key — Secret Access Key, секретный ключ.
  8. Нажмите Скопировать и сохраните ключ — после закрытия окна его нельзя будет просмотреть.

Интеграция S3 хранилища с Р7-Диск на примере Selectel

Более подробно можно ознакомиться с этим на портале Selectel по ссылке:
https://docs.selectel.ru/cloud/object-storage/

5. Настройка прав на хранилище

На контейнер надо выставить класс «холодное» и установить политики доступа как показано на скриншоте ниже.

Интеграция S3 хранилища с Р7-Диск на примере Selectel-1

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 хранилища с Р7-Диск на примере Selectel

В объектном хранилище S3 можно наблюдать появление данных файлов

Интеграция S3 хранилища с Р7-Диск на примере Selectel

Файлы, созданные ранее, в хранилище не загрузятся и необходима миграция их вручную!