Продукты Р7
Корпоративный сервер 2024
Корпоративный сервер 2024
Сервер документов
Сервер документов
Редакторы
Редакторы
Корпоративный сервер 2019
Корпоративный сервер 2019
Графика
Графика
Команда
Команда
Мобильные редакторы
Мобильные редакторы
Облачный офис
Облачный офис
Почта
Почта
Органайзер
Органайзер
Дополнительно
Часто задаваемые вопросы
Разработчикам
Интеграции
Новые возможности

Интеграция S3 хранилища c Корпоративным сервером 2024 VK Cloud, Selectel

Обновлено: 24.12.25

1. Введение

S3 API — API на базе Amazon S3 API, предназначенный для работы с ресурсами объектного хранилища.

С помощью S3 API можно:

  • Просматривать информацию о количестве и объеме контейнеров и объектов в рамках аккаунта;
  • Создавать и удалять контейнеры;
  • Загружать, просматривать, копировать, перемещать, скачивать и удалять объекты в контейнерах;
  • Управлять сегментированной загрузкой объектов;
  • Управлять CORS и т.д.

2. Доступ к S3 API в Selectel

К S3 API возможен только авторизованный доступ.

Для доступа к контейнеру через S3 API у пользователя должна быть роль с доступом к объектному хранилищу.

2.1. Аутентификация

Аутентификация в S3 API происходит с помощью подписи запросов.

Для формирования подписи потребуются ключи доступа, которые можно получить при выдаче S3-ключа пользователю:

  • Access Key ID — значение поля Access key из S3-ключа;
  • Secret Access Key — значение поля Secret key из S3-ключа.

2.2. Как выдать S3-ключ⁠​?

Выдавать S3-ключи (EC2-ключи) можно только сервисным пользователям с ролью с доступом в объектное хранилище.

Выдать S3-ключ сервисному пользователю может только Владелец аккаунта или Администратор пользователей.

Получить S3-ключ самостоятельно сервисный пользователь не может.

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

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

    Access key— Access Key ID, идентификатор ключа;

    Secret key — Secret Access Key, секретный ключ.

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

Уточнение

Более подробно можно ознакомиться с этим на портале Selectel по ссылке ↗.

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

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

3. Доступ к S3 API в VK Cloud

3.1. Создайте бакет, например

Уточнение

Дополнительная информация доступна по ссылке ↗.

3.2. Перейдите в созданный бакет и создайте ключ

Потребуется сохранить Access Key ID и Secret Key для дальнейшего использования.

4. Реализация переноса текущих данных на примере rclone

4.1. Скачайте и установите rclone, например, командой:

Для deb:

wget https://downloads.rclone.org/v1.70.3/rclone-v1.70.3-linux-amd64.deb

apt-get install ./rclone-v1.70.3-linux-amd64.deb

Для rpm:

wget https://downloads.rclone.org/v1.70.3/rclone-v1.70.3-linux-amd64.rpm

apt-get install ./rclone-v1.70.3-linux-amd64.rpm

4.2. Настройте адресацию к бакету в файле /root/.config/rclone/rclone.conf

Selectel:

[Selectel]

type = s3

provider = Other

access_key_id = *******************************

secret_access_key = *******************************

region = ru-msk

endpoint = https://s3.ru-1.storage.selcloud.ru

VK Cloud:

[vk]

type = s3

provider = Other

access_key_id = *******************************

secret_access_key = *******************************

region = ru-msk

endpoint = https://hb.ru-msk.vkcloud-storage.ru

Для проверки подключения создайте файл в бакете и проверьте командой на сервере наличие файла:

Selectel:

rclone ls Selectel:diskstorage

VK Cloud:

rclone ls vk:test2-forcs24

Где:

  • rclone ls — название_конфигурации_из_конфигурации_rclone.conf:имя_бакета.

4.3. Для переноса данных каталога filestorage:

Selectel:

rclone copy --progress /var/r7-office/filestorage/ Selectel:diskstorage/

VK Cloud:

rclone copy --progress /var/r7-office/filestorage/  vk:test2-forcs24/

4.4. Для синхронизации данных если были сгенерированы еще файлы в момент копирования:

Selectel:

rclone sync --progress /var/r7-office/filestorage/ Selectel:diskstorage/

VK Cloud:

rclone sync --progress /var/r7-office/filestorage/ vk:test2-forcs24/
Важно

Рекомендуется остановить сервисы Корпоративного сервера при финальной синхронизации.

supervisorctl stop all

5. Настройка работы Корпоративного сервера с S3

Для настройки работы Корпоративного сервера 2024 с S3 хранилищем необходимо добавить секцию «s3» с соответствующими параметрами в файлы:

/opt/r7-office/Api/appsettings.json

/opt/r7-office/Processing/appsettings.json

Секция «s3»:

Selectel:

"s3": {

     "key": "*******************************",

     "secret": "****************************",

     "region": "ru-1",

     "bucket": "diskstorage",

      "url": "https://s3.ru-1.storage.selcloud.ru"

   },

VK Cloud:

"s3": {

     "key": "*******************************",

     "secret": "****************************",

     "region": "ru-msk",

     "bucket": "test2-forcs24",

      "url": "https://hb.ru-msk.vkcloud-storage.ru"

   },

Где:

  • key – Access Key ID, идентификатор ключа;
  • secret – Secret Access Key, секретный ключ;
  • region – пул, в котором находится объектное хранилище;
  • bucket – название контейнера, куда будут сохраняться объекты;
  • url – домен S3 API с Path-Style адресацией.

Рекомендуется добавление после секции ConnectionStrings. Пример добавленной секции:

...

"ConnectionStrings": {

    "R7StorageServerUserActions": "Database=cddisk;Username=cddisk;Password=*;Host=localhost;Port=5432;",

    "R7StorageServer": "Database=cddisk;Username=cddisk;Password=*;Host=localhost;Port=5432;",

    "CommunityRepository": "Server=localhost;UserID=root;Password=*;Database=r7-office",

    "Payments": "Database=Payments;Username=cddisk;Password=*;Host=localhost;Port=5432;",

    "GeoNames": "Database=GeoNames;Username=cddisk;Password=*;Host=localhost;Port=5432;"

  },

  "s3": {

     "key": "*******************************",

     "secret": "****************************",

     "region": "ru-1",

     "bucket": "diskstorage",

      "url": "https://s3.ru-1.storage.selcloud.ru"

   },

  "rabbitMq": {

    "host": "localhost",

    "username": "guest",

    "password": "guest",

    "timeout": 10

  },

...

5.1. Перезагрузка сервисов

После внесения изменений в конфигурационные файлы appsettings.json необходимо перезапустить сервисы командой:

supervisorctl restart all

6. Использование

После перезагрузки сервисов созданные и редактируемые файлы на портале Корпоративного сервера 2024 будут храниться в S3 хранилище:

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

Selectel:

VK Cloud: