Данная статья предназначена для тех, кто искал подробное и понятное руководство о том, как настроить Amazon S3 для обмена файлами в Rocket.Chat.

Rocket.Chat - это мессенджер с открытым исходным кодом, который поддерживает групповые чаты, обмен файлами, видеоконференции, ботов и многое другое. Rocket.Chat можно установить на собственный сервер, а затем общаться, используя веб-интерфейс, персональный компьютер или мобильное устройство.

Подробно о том, как установить Rocket.Chat на Ubuntu Server, вы можете прочитать в моем руководстве “Установка Rocket.Chat на Ubuntu Server”.

Также у вас должна быть учетная запись, обладающая правами администратора, в Amazon Web Services.

Обратите внимание, для настройки обмена файлами вам необходимо обладать правами администратора в Rocket.Chat.

Вначале создадим корзину, воспользовавшись сервисом Amazon S3. Корзина позволит хранить файлы, которыми будут обмениваться пользователи Rocket.Chat.

Переходим по ссылке, указываем при необходимости имя пользователя и пароль учетной записи, обладающей правами администратора, в Amazon Web Services и нажимаем на кнопку “Create bucket”.

Настройка Amazon S3 для обмена файлами в Rocket.Chat

В поле “Bucket name” указываем уникальное DNS-совместимое имя для корзины.

Обратите внимание, на несколько важных вещей при создании нового имени для корзины:

  • Имя корзины должно быть уникальным для всех существующих сегментов в Amazon S3.
  • После создания корзины вы не можете изменить ее имя.
  • Выберите имя корзины, отражающее предназначения объектов, которые вы планируете в ней хранить. Это важно, так как имя корзины отображается в URL-адресе, который указывает на объекты в ней.

В данном руководстве в качестве имени корзины будет использоваться “rocketchat-heyvaldemar”.

В поле “Region” указываем желаемый регион, в котором будет создана корзина.

Нажимаем на кнопку “Create”.

Настройка Amazon S3 для обмена файлами в Rocket.Chat

Корзина успешно создана.

Теперь необходимо настроить права доступа к корзине, чтобы пользователи Rocket.Chat могли обмениваться файлами, используя эту корзину.

Выбираем ранее созданную корзину.

Настройка Amazon S3 для обмена файлами в Rocket.Chat

Переходим на вкладку “Permissions”, затем выбираем “CORS configuration”.

Настройка Amazon S3 для обмена файлами в Rocket.Chat

Далее вставляем следующую конфигурацию. для работы корзины.

В данном руководстве для доступа к Rocket.Chat из сети Интернет будет использоваться субдомен rocketchat.heyvaldemar.net. Вам нужно будет указать ваш домен или субдомен, по которому Rocket.Chat будет доступен из сети Интернет.

Нажимаем на кнопку “Save”.

Настройка Amazon S3 для обмена файлами в Rocket.Chat

Изменения успешно сохранены.

Настройка Amazon S3 для обмена файлами в Rocket.Chat

Теперь необходимо создать политику для доступа к ранее созданной корзине.

Нажимаем на кнопку “Services” и в разделе “Security, Identity & Compliance” выбираем “IAM”.

Настройка Amazon S3 для обмена файлами в Rocket.Chat

Далее переходим в раздел “Policies” и нажимаем на кнопку “Create policy”.

Настройка Amazon S3 для обмена файлами в Rocket.Chat

Переходим на вкладку “JSON”.

Настройка Amazon S3 для обмена файлами в Rocket.Chat

Вставляем следующие параметры для политики.

В данном руководстве в качестве имени корзины используется “rocketchat-heyvaldemar”. Вам нужно будет указать ваше имя корзины.

Нажимаем на кнопку “Review policy”.

Настройка Amazon S3 для обмена файлами в Rocket.Chat

В поле “Name” указываем имя для новой политики и нажимаем на кнопку “Create Policy”.

В данном руководстве в качестве имени политики для доступа к ранее созданной корзине будет использоваться “RocketChatFileUpload”.

Настройка Amazon S3 для обмена файлами в Rocket.Chat

Политика успешно создана.

Настройка Amazon S3 для обмена файлами в Rocket.Chat

Теперь необходимо создать нового пользователя и назначить ему ранее созданную политику доступа к корзине. Этот пользователь потребуется для подключения Rocket.Chat к корзине.

Переходим в раздел “Users” и нажимаем на кнопку “Add user”.

Настройка Amazon S3 для обмена файлами в Rocket.Chat

В поле “User name” указываем имя для нового пользователя и нажимаем на кнопку “Next: Permissions”.

В данном руководстве в качестве имени пользователя будет использоваться “rocketchat-upload”.

Настройка Amazon S3 для обмена файлами в Rocket.Chat

Далее выбираем “Attach existing policies directly”.

Настройка Amazon S3 для обмена файлами в Rocket.Chat

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

В данном руководстве в качестве имени политики для доступа к ранее созданной корзине используется “RocketChatFileUpload”.

Нажимаем на кнопку “Next: Tags”.

Настройка Amazon S3 для обмена файлами в Rocket.Chat

На следующем шаге можно не вносить никаких изменений.

Нажимаем на кнопку “Next: Review”.

Настройка Amazon S3 для обмена файлами в Rocket.Chat

Все готово для создания нового пользователя.

Нажимаем на кнопку “Create user”.

Настройка Amazon S3 для обмена файлами в Rocket.Chat

Пользователь успешно создан и обладает необходимыми правами для доступа к ранее созданной корзине.

Теперь необходимо сохранить полученные “Access key ID” и “Secret access key”. Эти данные понадобятся для подключения Rocket.Chat к ранее созданной корзине.

Нажимаем на кнопку “Show” для отображения содержимого раздела “Secret access key” и сохраняем содержимое раздела в надежное место.

Нажимаем на кнопку “Close”.

Настройка Amazon S3 для обмена файлами в Rocket.Chat

Новый пользователь появится в разделе “Users”.

Настройка Amazon S3 для обмена файлами в Rocket.Chat

Теперь необходимо найти код для региона, в котором была создана корзина.

Переходим по ссылке и находим нужный код региона в колонке “Region” рядом с колонкой “Region Name”, значение в которой должно соответствовать региону, в котором была создана корзина.

В данном руководстве корзина была создана в регионе “EU (Frankfurt)”, соответственно необходимое значение кода региона будет “eu-central-1”.

Настройка Amazon S3 для обмена файлами в Rocket.Chat

Теперь нужно указать параметры для подключения Rocket.Chat к ранее созданной корзине.

Заходим в Rocket.Chat под учетной записью с правами администратора, нажимаем на значок с изображением трех точек в левом верхнем углу экрана и выбираем “Administration”.

Настройка Amazon S3 для обмена файлами в Rocket.Chat

Далее находим раздел “File Upload”.

Параметр “File Uploads Enabled” должен иметь значение “True”.

Параметр “Protect Uploaded Files” должен иметь значение “True”.

Параметр “File Uploads Enabled” должен иметь значение “True”.

Параметр “Enable Json Web Tokens protection to file uploads” должен иметь значение “True”.

В поле “Storage Type” выбираем “AmazonS3”.

Параметр “File Uploads Enabled in Direct Messages” должен иметь значение “True”.

Нажимаем на кнопку “Save Changes”.

Настройка Amazon S3 для обмена файлами в Rocket.Chat

Далее нужно указать параметры в подразделе “Amazon S3”.

В поле “Bucket name” указываем имя ранее созданной корзины.

В поле “Access Key” указываем “Access key ID”, полученный ранее после создания пользователя.

В поле “Secret Key” указываем “Secret access key”, полученный ранее после создания пользователя.

В поле “Region” указываем код региона корзины, полученный ранее по ссылке.

Параметр “Proxy Avatars” должен иметь значение “True”.

Параметр “Proxy Uploads” должен иметь значение “True”.

Нажимаем на кнопку “Save Changes”.

Настройка Amazon S3 для обмена файлами в Rocket.Chat

Теперь загрузим файл с компьютера в общий канал под названием IT, чтобы проверить корректность работы загрузки файлов в Rocket.Chat, используя сервис Amazon S3.

Открываем канал в Rocket.Chat, затем в правом нижнем углу экрана нажимаем на значок с изображением плюса и выбираем “Computer”.

Настройка Amazon S3 для обмена файлами в Rocket.Chat

Выбираем файл, который необходимо загрузить.

Настройка Amazon S3 для обмена файлами в Rocket.Chat

Файл готов к загрузке.

Нажимаем на кнопку “Send”.

Настройка Amazon S3 для обмена файлами в Rocket.Chat

Файл успешно загружен и доступен для всех участников канала IT в Rocket.Chat.

Теперь пользователи Rocket.Chat могут обмениваться файлами, используя сервис Amazon S3.

Настройка Amazon S3 для обмена файлами в Rocket.Chat

Владимир Михалев
Привет, я Владимир Михалев, но друзья зовут меня Вальдемарыч. Я обладаю практическим опытом проектирования и сопровождения различных информационных систем.