Настройка Amazon S3 и подключение к DLE

В начале октября 2021 года, разработчики движка DataLife Engine выпустили официальный релиз под номером 15.0, в котором последовало больше 30 изменений — в частности менеджера загрузок, настройка водяного знака, визуального редактора TinyMCE и многое другое. Между всеми изменениями была добавлена функция внешнего хранилища.

Зачем нужно внешнее хранилище?

Предположим, на нашем сайте есть сотни файлов, одни из которых имеют высокий размер. Чем больше пользователей скачивают файл, тем высокая нагрузка поступает на сервер.

С такой проблем столкнулся и я. На моём сайте загружены файлы больше 100 мб, каждый день их скачивают более 1000 юзеров в сутки, таким образом сервер сильно нагружается и становится недоступным. Мой сервер не может похвастаться «крутыми» характеристиками, решаю обойти с помощью внешнего облачного хранилища.

Начало работы с Amazon S3: Создание и настройка хранилища

Регистрируемся на AWS, после успешной регистрациипереходим по ссылке. Мы попадаем на страницу Консоли управления, в поисковой строке введите «s3» и перейдите на страницу которое появится в результате поиска. Если ничего нет, убедитесь что вы находитесь в разделе Services.

На текущей странице нас интересует только три настройки: Название, регион и доступ.

  • Введите любое название своего хранилища в строке Bucket name.
  • Выберите регион (AWS Region) где будут расположены ваши файлы. Выбирайте тот регион к которому ближе.
Настройки Общей конфигурации

 

  • В разделе Object Ownership выберите ACLs enabled.
Настройка на Владение объектами

 

  • Далее в разделе «Block Public Access settings for this bucket» уберите все галочки чтобы корзина стала публичным. Это нужно чтобы каждый пользователь интернета смог получить информацию на сервере (картинки, файлы, видео и т.д). Ниже незабываем поставить галочку что мы в курсе.
Настройки публичного доступа

 

Это все настройки, спускаемся ниже и нажимаем «Create bucket» (Создать корзину).

После успешного создания, заходим в корзину и переходим в раздел «Permissions». Находим строку «Bucket policy», нажимаем «Edit» и вставляет этот фрагмент JSON:

{
    "Version": "2008-10-17",
    "Statement": [
    {
        "Sid": "AllowPublicRead",
        "Effect": "Allow",
        "Principal": {
            "AWS": "*"
        },
        "Action": "s3:GetObject",
        "Resource": "arn:aws:s3:::my-bucket-894361/*"
    }
    ]
}

Где my-bucket-894361, вставляйте своё имя корзины. Нажимаем «Save changes».

После этого, переходим в раздел «Security credentials» — его можно найти в правом верхнем углу нажав на свой ник.

Как найти Security credentials

 

Мы попадаем на страницу Управление идентификацией и доступом (IAM). Нас интересует раздел «Users», переходим и нажимаем «Add users».

Вводим любое имя и ставим галочку в Access key — Programmatic access.

Добавления пользователя в IAM

 

На втором пункте мы ничего из списка не выбираем. Создадим свою политику сами:

  • Нажмите Create policy
  • Откроется новое окно, откройте раздел JSON и вставьте этот код:
{
    "Version": "2012-10-17",
    "Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "s3:CreateBucket",
            "s3:DeleteObject",
            "s3:Put*",
            "s3:Get*",
            "s3:List*"
        ],
        "Resource": [
            "arn:aws:s3:::my-bucket-894361",
            "arn:aws:s3:::my-bucket-894361/*"
        ]
    }
    ]
}
  • Нажимаем Next: Tags, в следующем разделе также нажимаем Next: Review
Создание политики со вставкой JSON-кода

 

  • В следующем разделе придумайте имя вашей политики.Важно его запомнить, он нам понадобиться в будущем.
Название политики

 

  • После чего, нажимаем Create policy

После создания, возвращаемся обратно и обновляем список.

Обновляем список политиков

 

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

Поиск и выбор политики

 

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

  • Заходим на сайт выбираем Amazon Облако (S3)
Амазон Облако S3

 

  • Access key ID вставляем в Client Key ID, а Secret access key в Secret Key;
  • Вставляем название бакета, в моём случае my-bucket-894361. Вы должны вставить своё название бакета;
  • В поле региона вставляем регион. Узнать его можно в разделе S3 (мы там уже были).
Регион AWS

 

  • Поле «Путь к файлам на внешнем сервере» оставляем пустым, так как мы не создавали папок.
  • Теперь мы должны узнать URL адрес нашего бакета. Загружаем любую картинку и копируем URL бакета.
Узнаём URL бакета

 

  • URL вставляем в HTTP адрес для внешнего хранилища;
  • Сохраните изменения.

Настройка завершена.

Оцените статью
CONFF.ORG
Добавить комментарий