Абстрактный слой файловой системы. Возможен ли в ядре системы? Складчина?)

InstantCMS 2.X

Очень полезно, чтобы использовать современные облачные технологии. Многие фреймворки и CMS системы имеют такое. Было бы здорово в instantCms тоже такую штуку иметь.

#1 9 мая 2025 в 20:16

Друзья, на сколько возможно  реализовать абстрактный слой файловой системы (FileSystem Abstraction Layer), аналогичный: Flysystem, Symfony Filesystem. Это позволит  использовать облачные хранилища (Яндекс Cloud S3, Amazon S3, Google Cloud Storage), тестирование кода с моками файловой системы, единый контроль прав доступа и логирования операций с файлами.

Возможно у Fuze уже есть в планах и при реализации складчины можно ускорить процесс внедрения?

Добавлено спустя 5 часов

Пример laravel.com/docs/master/filesystem

Добавлено спустя 1 минуту

Есть готовое решение по лицензии MIT которое можно использовать github.com/thephpleague/flysystem минимальная версия php 8 должна быть

#2 11 мая 2025 в 10:31

давно пора

#3 11 мая 2025 в 17:49

давно пора

Михаил

Зачем? Место стоит дёшево, директорию upload с первого релиза можно размещать на другом сервере, тот же Амазон можно примонтировать в директорию. С чем можно столкнуться, чтобы рядовому сайту это понадобилось?

Возможно у Fuze уже есть в планах и при реализации складчины можно ускорить процесс внедрения?

Def

При должном финансировании можно сделать всё что угодно.

Сегодня в 02:40
#4 11 мая 2025 в 23:03

При должном финансировании можно сделать всё что угодно.

Fuze

Чтобы реализовать задуманное, то должное это сколько?) Готов быть первым участником

Добавлено спустя 1 час

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

Fuze

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

#5 12 мая 2025 в 11:26

Можно было бы разворачивать в облаке

Def

Что разворачивать в облаке? Вы точно понимаете то, что описываете в теме?

и платить только за используемые ресурсы

Def

Эм… Ну так разверните в облаке движок и платите не думая о свободном месте.

Также есть множество других плюшек.

Def

Каких?

Чтобы реализовать задуманное, то должное это сколько?)

Def

Не знаю, объём работ непонятен. Но думаю не менее 1500$.

#6 13 мая 2025 в 03:36

можно использовать github.com/thephpleague/flysystem

Def

На мой взгляд это сомнительная затея, только тормознутости добавит движку. Думаю эффективней будет ставить iCMS на VDSку, а к вдске уже цеплять любое хранилище

#7 13 мая 2025 в 15:50
можно использовать github.com/thephpleague/flysystem Def На мой взгляд это сомнительная затея, только тормознутости добавит движку.
Dublic

FileSystem Abstraction Layer (FSAL) в CMS-системах — это слой абстракции между самой системой управления контентом и физическим файловым хранилищем. Он предоставляет универсальный API для взаимодействия с файлами, независимо от их местоположения (локальный диск, облако, FTP, и т.д.).

Вот зачем он нужен:

🔧 1. Унификация доступа к разным хранилищам
FSAL позволяет CMS работать с:

  • Локальной файловой системой
  • Amazon S3, Google Cloud Storage и др.
  • FTP/SFTP
  • CDN-сервисами
  • Базами данных (в редких случаях)

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

 
🔐 2. Повышение безопасности
Слой абстракции позволяет:

  • централизованно контролировать доступ к файлам (например, через ACL — Access Control List),
  • фильтровать вредоносные имена файлов,
  • предотвращать прямой доступ к чувствительным файлам.

 
🔄 3. Гибкость и масштабируемость
С FSAL можно легко мигрировать с одного типа хранилища на другое (например, с локального на Amazon S3), масштабировать проект без глобальной переработки кода.
 
📁 4. Кэширование и оптимизация производительности
FSAL часто поддерживает:

  • автоматическое кэширование файлов,
  • работу с CDN,
  • lazy-loading и прелоадинг, что улучшает производительность CMS при работе с большими объёмами файлов (например, изображениями или видео).

 
🧪 5. Удобство тестирования и разработки
В тестовой среде можно подменять файловую систему на «виртуальную» (например, in-memory), не затрагивая код приложения. Это облегчает написание unit- и integration-тестов.

 
📦 Примеры реализации FSAL в популярных CMS
Laravel (Laravel CMS, OctoberCMS и др.): использует Flysystem (ныне интегрирован в Laravel Filesystem).
TYPO3: имеет собственный слой FAL (File Abstraction Layer).
 
FileSystem Abstraction Layer — это важный элемент архитектуры CMS, повышающий универсальность, безопасность и масштабируемость проекта. Он особенно актуален для систем, которые должны работать с разнообразными источниками файлов или планируют рост.

Так что наоборот, это позволяет избежать тормознутости системы.

#8 13 мая 2025 в 16:05

Def, спасибо за цитирование chatgpt. Ещё раз: зачем конкретно вам это нужно, какую проблему вы хотите решить? Полагаю, вы сами не знаете, а просто где-то услышали, что это «круто».

И опять же ещё раз: вынести директорию upload на другой домен, на другой сервер можно хоть сейчас. Штатно, но требуется настройка серверов.

Конкретно моё мнение — для 90% юзеров всякие Амазоны, ГуглКлоуды и т.п. не нужны. С вами в эту складчину вряд ли кто пойдёт.

#9 14 мая 2025 в 01:12

Не знаю во что тут все превратилось. Я думал о возможности вынести папку uploads в google (drive/cloud, уже не помню что там). И усе. Дабы не заполнять хостинг картинками.

#10 14 мая 2025 в 11:01
Не знаю во что тут все превратилось. Я думал о возможности вынести папку uploads в google (drive/cloud, уже не помню что там). И усе. Дабы не заполнять хостинг картинками.
pupsik

Абстрактный слой позволит куда угодно переносить:)

#11 14 мая 2025 в 12:51

 Подразумеваю, что имеется в виду к примеру  как в dle без танцев с бубном сделать разные хранилища

Изображение

#12 14 мая 2025 в 23:50

Подразумеваю, что имеется в виду к примеру  как в dle без танцев с бубном сделать разные хранилища

Михаил

Лично Я, именно про это и думал. А что там Def говорил, я так и не понял. Расписал ТЗ аж на $1500...

Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.

Похожее в блогах

Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.