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

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

Обновлено: 24.09.26

Инструкция актуальна для версий продукта: 2025.4.6.16449 – 2026.1.12.16832

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 2025.4.6.16449 настройка осуществляется до пункта 5а, для версии Корпоративного сервера 2024 начиная с 2025.4.6.16449 пункт 5 и 5.1 пропускаете.

Для настройки работы Корпоративного сервера 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

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

Необходимо перейти в Общие настройки, Хранилище и через «Создать +» создать подключение к первому внешнему хранилищу S3.


Уточнение

Так вы можете добавить столько подключений сколько необходимо.

После того как заполните настройки подключения, нажимаете кнопку «Валидировать» и только после удачной проверки сохраняете настройку.

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

Для того чтобы новые данные начали уходить в новое хранилище, его нужно выбрать в настройках вашей организации.


Теперь новые данные будут храниться во внешнем S3 хранилище. Проверить вы можете перейдя в соответствующий бакет. Должны увидеть новые объекты:

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

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

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

Selectel:

VK Cloud:

Была ли эта статья полезной?

Поделитесь пожалуйста своим мнением

      В статье есть ошибкиРекомендации не помоглиТекст трудно понятьСодержание статьи не соответствует заголовкуДругое