Возможно, вы уже пробовали Strapi и он вам настолько понравился, что вы решили развернуть его на одном из серверов.
Например, я развернул на VPS с Node, nginx, pm2. Поскольку VPS обычно имеет скудные возможности хранения, вы хотите хранить все свои вещи в одном из современных хранилищ.
Strapi разработал для нас коннектор для корзины Amazon S3. Этот плагин уже включен в стандартный репозиторий Strapi; ранее он был указан как плагин, разработанный сообществом.
Вы можете увидеть, как подключить корзину Amazon S3 здесь: видео от Алекса (сегодня конфигурационные файлы нужно писать немного по-другому — но общая схема остается той же).
В этой статье мы рассмотрим подключение Яндекс Объектного Хранилища.
Для начала, конечно, необходимо зарегистрироваться в облаке Яндекс.
После этого в консоли управления выберите Object Storage.
Нажмите на желтую кнопку «Создать бакет» и заполните поля как показано на картинке – т.е.
установите публичный доступ на чтение и на список объектов, класс хранения – стандартный.
После того, как вы нажмете на кнопку «Создать бакет», вы увидите его в списке бакетов:
Далее нам нужно будет создать статический ключ для доступа к Яндексу с нашего сервера Strapi. Нажмите на иконку со своим облаком (выделено на фото выше красной рамкой) (облаков может быть несколько) и выберите свой каталог - в моем случае каталог называется default - нажмите на него.
Слева вы увидите меню, в котором есть пункт «Сервисные аккаунты» — нажмите на него и при необходимости создайте сервисный аккаунт (скорее всего вы это сделали при регистрации)
Нажмите на свой сервисный аккаунт – перед вами откроется страница, на которой уже будет нужная нам кнопка.
Нажмите на кнопку «Создать новый ключ» и выберите «Создать статический ключ доступа», введите описание.
После ввода описания у вас появятся два ключа:
Сохраните эти два значения в блокноте — они нам понадобятся позже.
Запустите консоль на своем компьютере и введите команду
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 , загрузите туда любое изображение.
Далее открываем наш только что созданный бакет в cloud.yandex.ru и видим:
В ведро было помещено несколько файлов разного размера.
Дело в том, что стандартные настройки Strapi обеспечивают генерацию нескольких файлов разного разрешения.
В Медиатеке вы можете размещать не только изображения, но и видео, pdf и любые другие файлы.
Разумеется, у Strapi есть готовый Rest API для записи файлов в Медиа-библиотеку.
P.S. Хочу выразить благодарность Александру Власову, оказавшему неоценимую помощь в настройке конфигурации облака Яндекс.
Теги: #Разработка веб-сайтов #Бессерверное #учебник #node.js #CMS #Node #Strapi
-
Как Удалить Ms-Office 2013?
19 Dec, 24 -
Просто Обожаю Идею Партнерского Маркетинга!
19 Dec, 24