Strapi Сохраняет Файлы В Яндекс Объектном Хранилище

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

Например, я развернул на VPS с Node, nginx, pm2. Поскольку VPS обычно имеет скудные возможности хранения, вы хотите хранить все свои вещи в одном из современных хранилищ.

Strapi разработал для нас коннектор для корзины Amazon S3. Этот плагин уже включен в стандартный репозиторий Strapi; ранее он был указан как плагин, разработанный сообществом.

Вы можете увидеть, как подключить корзину Amazon S3 здесь: видео от Алекса (сегодня конфигурационные файлы нужно писать немного по-другому — но общая схема остается той же).

В этой статье мы рассмотрим подключение Яндекс Объектного Хранилища.

Для начала, конечно, необходимо зарегистрироваться в облаке Яндекс.

После этого в консоли управления выберите Object Storage.

Strapi Сохраняет Файлы В Яндекс Объектном Хранилище

Нажмите на желтую кнопку «Создать бакет» и заполните поля как показано на картинке – т.е.

установите публичный доступ на чтение и на список объектов, класс хранения – стандартный.



Strapi Сохраняет Файлы В Яндекс Объектном Хранилище

После того, как вы нажмете на кнопку «Создать бакет», вы увидите его в списке бакетов:

Strapi Сохраняет Файлы В Яндекс Объектном Хранилище

Далее нам нужно будет создать статический ключ для доступа к Яндексу с нашего сервера Strapi. Нажмите на иконку со своим облаком (выделено на фото выше красной рамкой) (облаков может быть несколько) и выберите свой каталог - в моем случае каталог называется default - нажмите на него.



Strapi Сохраняет Файлы В Яндекс Объектном Хранилище

Слева вы увидите меню, в котором есть пункт «Сервисные аккаунты» — нажмите на него и при необходимости создайте сервисный аккаунт (скорее всего вы это сделали при регистрации)

Strapi Сохраняет Файлы В Яндекс Объектном Хранилище

Нажмите на свой сервисный аккаунт – перед вами откроется страница, на которой уже будет нужная нам кнопка.



Strapi Сохраняет Файлы В Яндекс Объектном Хранилище

Нажмите на кнопку «Создать новый ключ» и выберите «Создать статический ключ доступа», введите описание.

После ввода описания у вас появятся два ключа:

Strapi Сохраняет Файлы В Яндекс Объектном Хранилище

Сохраните эти два значения в блокноте — они нам понадобятся позже.

Запустите консоль на своем компьютере и введите команду

 
  npx create-strapi-app strapi-yandex-cloud --quickstart 
Через некоторое время Strapi установится в директорию Strapi-yandex-cloud и откроется окно браузера, в котором необходимо ввести учетные данные администратора.

После этого окно браузера можно закрыть.

Остановите работающий сервер, перейдите в каталог вашего приложения — Strapi-yandex-cloud и установите дополнительный плагин: npm i -S strapi-provider-upload-aws-s3 Теперь последний шаг — создать файл конфигурации плагина.

Создайте файл config/plugins.js (файл плагины.

js в каталоге конфигурации) со следующим содержимым: module.exports = ({ env })=>({ upload: { provider: 'aws-s3', providerOptions: { endpoint: ' https://storage.yandexcloud.net ', accessKeyId: env('AWS_ACCESS_KEY_ID'), secretAccessKey: env('AWS_ACCESS_SECRET'), region: env('AWS_REGION'), params: { Bucket: env('AWS_BUCKET'), }, }, }, }); Остается сделать последний шаг.

В корне проекта создайте файл .

env, в который запишите данные вашего бакета: HOST=0.0.0.0 PORT=1337 AWS_ACCESS_KEY_ID=pg2ywMziH_9zeZfA7t3w AWS_ACCESS_SECRET="aTiO354YNpnO9zKjqBiP1U3nm3F3CoXGLYcldZBC" AWS_REGION="ru-central1" AWS_BUCKET="strapi-backet-test" Здесь Strapi-Backet-test — это имя созданного вами бакета, а два длинных ключа — это статический ключ доступа, который вы создали на предыдущем шаге.

Собственно, на этом процесс и завершен! Запустите свой сервер — npm run development. Открыть в браузере Медиатека Strapi , загрузите туда любое изображение.



Strapi Сохраняет Файлы В Яндекс Объектном Хранилище

Далее открываем наш только что созданный бакет в cloud.yandex.ru и видим:

Strapi Сохраняет Файлы В Яндекс Объектном Хранилище

В ведро было помещено несколько файлов разного размера.

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

В Медиатеке вы можете размещать не только изображения, но и видео, pdf и любые другие файлы.

Разумеется, у Strapi есть готовый Rest API для записи файлов в Медиа-библиотеку.

P.S. Хочу выразить благодарность Александру Власову, оказавшему неоценимую помощь в настройке конфигурации облака Яндекс.

Теги: #Разработка веб-сайтов #Бессерверное #учебник #node.js #CMS #Node #Strapi

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2020-10-29 13:49:58
Баллов опыта: 682
Всего постов на сайте: 3
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.