Русский
Русский
English
Статистика
Реклама

Strapi

Strapi сохранение файлов на Яндекс Object Storage

14.03.2021 20:05:08 | Автор: admin

Возможно Вы уже пробовали 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.0PORT=1337AWS_ACCESS_KEY_ID=pg2ywMziH_9zeZfA7t3wAWS_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. Хочу поблагодарить Александра Власова, оказавшего неоценимую помощь в настройке конфигурации для Яндекс облака.

Подробнее..

Recovery mode Почему для информационных проектов из всех Headless CMS мы часто выбираем Strapi

24.09.2020 08:13:47 | Автор: admin

Существует большое количество (всего порядка 50) Headless CMS. Это системы управления, в которых реализован новый принцип разделения двух слоев данных и представления (логика Jamstack).




Headless CMS отвечают только за бэкенд-часть (данные), и могут взаимодействовать с любыми платформами представления (сайтами, приложениями). Благодаря этому одну систему можно использовать для разных пользовательских интерфейсов.



Какие бывают Headless CMS


Все системы управления, работающие по логике Jamstack, представлены на сайте headlesscms.org. Они разделены, прежде всего, на открытые и закрытые open source и closed source решения.


По способу развертывания, разные HCMS предполагают установку локально или через облачные сервисы.


По способу передачи данных, системы могут поддерживать REST API, GraphQL или оба синтаксиса.


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


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



Почему Strapi


В списке Headless CMS с открытым исходным кодом Strapi недаром занимает первое место. Это решение пользуется большой популярностью и имеет свыше 28 тысяч звезд на GitHub.




Система предназначается для профессиональных разработчиков. Однако для работы с ней не требуется слишком глубоких и разносторонних познаний в области программирования. В этом главная ценность Strapi она позволяет максимально быстро и с минимальными ресурсами создавать API для работы с данными.



Основные особенности


Strapi представляет собой фреймворк для управления контентом, работающий на Node.js. Это open source-проект, полностью бесплатный. Система разворачивается локально на собственном сервере компании, что обеспечивает безопасность данных.


CMS можно настраивать и масштабировать с помощью системы плагинов. Здесь предусмотрено множество встроенных возможностей: удобная административная панель, управление аутентификацией и доступами, инструменты для работы с контентом, генератор API и прочее.


Главные особенности и преимущества Strapi:


  • Открытый исходный код.Система разработана энтузиастами и поддерживается сотнями участников GitHub, которые развивают ее в соответствии с новыми требованиями и технологиями. Она всегда будет доступна и бесплатна.
  • Широкие и гибкие настройки.Панель администратора, как и API, легко настраивается. Функционал расширяется за счет пользовательских плагинов в считанные секунды.
  • RESTful или GraphQL.CMS поддерживает передачу данных посредством и REST, и GraphQL. Это расширяет возможности взаимодействия с разными клиентами, мобильными приложения, IoT-устройствами.
  • Локальное размещение.Размещение на собственном сервере владельца системы гарантирует конфиденциальность и обеспечивает повышенный уровень защиты данных (в том числе в соответствии с европейским стандартом GDPR).
  • Один язык.Система использует JavaScript, что позволяет работать с одним языком как в CMS, так и во фронтенде.
  • Настройки доступа.В системе реализован контроль доступа с учетом разных уровней и ролей пользователей (администраторов).


Применение Strapi


Система имеет множество вариантов применения. Она может использоваться для статических сайтов, мобильных приложений, корпоративных ресурсов, электронной коммерции.




На Strapi создаются ультра-быстрые современные сайты и мобильные приложения. Повышенная производительность достигается при использовании Headless CMS в связке со статическим генератором сайтов и обслуживании через CDN.


Релевантные части контента загружаются в тот момент, когда пользователь делает запрос. Повторная загрузка содержимого осуществляется только после его обновления. Благодаря этому сайт доступен по всему миру без ожидания на стороне сервера.


Strapi поддерживает любые статические генераторы сайтов и различные фреймворки для создания пользовательских интерфейсов. Самые популярные из них: Gatsby, React, Vue.js, Nuxt.js, Next.js, Angular.



Как использовать Strapi


Чтобы разработать API с помощью Strapi, предпочтительнее использовать PostgreSQL, MongoDB, MySQL или MariaDB. Установка происходит с использованием npm.


Дальнейшая последовательность действий:


  • Создается директория для нового проекта.
  • Внутри директории выполняется команда для создания нового API.
  • Запускается сервер на Node.js.
  • Регистрируется первый пользователь.
  • Создается тип контента (Content Type структуры данных в Strapi, эквивалент моделей).
  • Добавляются материалы в базу данных.
  • Настраиваются роли пользователей (администраторов, редакторов).

После этого можно взаимодействовать со Strapi через любимый API-протокол для генерации статического контента и/или использовать API-вызовы на регулярной основе, как и к любому бэкенду.




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


Алгоритм подходит для создания блогов, бизнес-сайтов, интернет-магазинов.



Обслуживание моделей через UI


Еще одна важная особенность Strapi возможность обслуживания моделей данных через пользовательский интерфейс.


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


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


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




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



Почему мы считаем, что Strapi лучше других Headless CMS


Мы используем бесплатную стабильную версию Strapi, которая позволяет создавать супер-быстрые статические сайты и экономит время разработки.


Система имеет удобную административную панель, легко масштабируется с помощью плагинов. Для работы с ней не требуются углубленные знания в веб-разработке.


Управление контентом осуществляется централизованно. А поскольку все технические решения скрыты на стороне сервера, система менее уязвима для атак.

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru