[CMS, Разработка веб-сайтов, Node.JS] Strapi сохранение файлов на Яндекс Object Storage
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Возможно Вы уже пробовали Strapi и он Вам даже понравился настолько, что Вы решили сделать deploy на одном из серверов.Например я делал deploy на VPS с Node, nginx, pm2. Поскольку VPS обычно обладает скудными возможностями по хранению чего либо - то хочется хранить все свое добро на одном из современных хранилищ. Strapi разработало для нас коннектор для backet Amazon S3. Данный плагин уже включен в стандартный репозиторий strapi, ранее он фигурировал как plugin, разработанный сообществом.Как подключить Amazon S3 bucket Вы можете посмотреть здесь:
ролик от Alex
(на сегодня конфигурационные файлы надо писать несколько по другому - но общая канва сохраняется).В данной статье мы рассмотрим подключение Яндекс Object Storage. Для начала Вам конечно надо зарегистрироваться на Яндекс cloud. После этого в консоли управления выбираете 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Теперь остался последний шаг - создать конфигурационный файл плагина. Создайте файл сonfig/plugins.js (файл plugins.js в директории config) следующего содержания:
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 develop.
Открываете в браузере strapi Media Library, загружаете туда какое либо изображение.
Далее открываем в cloud.yandex.ru наш вновь созданный бакет и видим:
В бакет было помещено несколько файлов разного размера. Дело в том, что стандартные настройки Strapi обеспечивают генерацию нескольких файлов разного разрешения.В Media Library можно помещать не только изображения, но и видео, pdf а также любые другие файлы. Конечно же в Strapi есть готовый Rest API для записи файлов в Media Library.P.S. Хочу поблагодарить Александра Власова, оказавшего неоценимую помощь в настройке конфигурации для Яндекс облака.
===========
Источник:
habr.com
===========
Похожие новости:
- [Разработка веб-сайтов, JavaScript, Программирование, Проектирование и рефакторинг, ReactJS] Фреймворк-независимое браузерное SPA (перевод)
- [Разработка веб-сайтов, PHP, Программирование, Учебный процесс в IT, Карьера в IT-индустрии] Курсы PHP-программирования в Минске. Куда пойти учиться?
- [Разработка веб-сайтов, JavaScript, ReactJS] Нарушает ли React DOM-стандарты?
- [Веб-дизайн, Разработка веб-сайтов, CSS, Программирование] Погружаемся в логические свойства CSS (перевод)
- [Разработка веб-сайтов, JavaScript, ReactJS] Реализация архитектуры Redux на MobX. Часть 1: «Проблемные места Redux»
- [Разработка веб-сайтов, Python, Django, Nginx] Запуск Django сайта на nginx + Gunicorn + SSL
- [JavaScript, Node.JS] Простой WebSocket-сервер на Node.JS
- [Веб-дизайн, Разработка веб-сайтов, Чулан, История IT] Как ощутить «интернет 2000 года»
- [Высокая производительность, Программирование, Алгоритмы, WebAssembly] Разгоняем JS-парсер с помощью WebAssembly (часть 3: SIMD)
- [Разработка веб-сайтов, JavaScript, Программирование, ReactJS] React: основные подходы к управлению состоянием
Теги для поиска: #_cms, #_razrabotka_vebsajtov (Разработка веб-сайтов), #_node.js, #_strapi, #_tutorial, #_node, #_cms, #_cms, #_razrabotka_vebsajtov (
Разработка веб-сайтов
), #_node.js
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 05:25
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Возможно Вы уже пробовали Strapi и он Вам даже понравился настолько, что Вы решили сделать deploy на одном из серверов.Например я делал deploy на VPS с Node, nginx, pm2. Поскольку VPS обычно обладает скудными возможностями по хранению чего либо - то хочется хранить все свое добро на одном из современных хранилищ. Strapi разработало для нас коннектор для backet Amazon S3. Данный плагин уже включен в стандартный репозиторий strapi, ранее он фигурировал как plugin, разработанный сообществом.Как подключить Amazon S3 bucket Вы можете посмотреть здесь: ролик от Alex (на сегодня конфигурационные файлы надо писать несколько по другому - но общая канва сохраняется).В данной статье мы рассмотрим подключение Яндекс Object Storage. Для начала Вам конечно надо зарегистрироваться на Яндекс cloud. После этого в консоли управления выбираете 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Теперь остался последний шаг - создать конфигурационный файл плагина. Создайте файл сonfig/plugins.js (файл plugins.js в директории config) следующего содержания: 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'), }, }, }, }); 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" Запускаете Ваш сервер - npm run develop. Открываете в браузере strapi Media Library, загружаете туда какое либо изображение. Далее открываем в cloud.yandex.ru наш вновь созданный бакет и видим: В бакет было помещено несколько файлов разного размера. Дело в том, что стандартные настройки Strapi обеспечивают генерацию нескольких файлов разного разрешения.В Media Library можно помещать не только изображения, но и видео, pdf а также любые другие файлы. Конечно же в Strapi есть готовый Rest API для записи файлов в Media Library.P.S. Хочу поблагодарить Александра Власова, оказавшего неоценимую помощь в настройке конфигурации для Яндекс облака. =========== Источник: habr.com =========== Похожие новости:
Разработка веб-сайтов ), #_node.js |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 05:25
Часовой пояс: UTC + 5