Хранилище
Файлы, интегрированные в код или в базу данных.
Общее хранилище
Папка 📂 storage предназначена для безопасного хранения общих файлов, которые используются при обработке приложения.
Структура папки
В папке 📂 storage находится следующая структура:
./storage/ ├─ ./database/ └─ ./filesystem/ ├─ ./private/ ├─ ./public/ └─ ./server/
База данных
Папка 📂 database используется для хранения файлов или изображений, связанных с базой данных.
Непрактично хранить файлы непосредственно в базе данных, поскольку это негативно сказывается на резервных копиях и синхронизации данных, значительно увеличивая размер базы данных из-за места, занимаемого обычно большим количеством файлов.
Поэтому в любой форме данных, содержащей поле загрузки файла или изображения, итоговый файл организуется и сохраняется здесь, а в поле базы данных записывается только итоговое имя файла.
Если структура данных содержит файлы, то для выполнения полного резервного копирования приложения необходимо создать резервную копию этой папки в дополнение к резервной копии базы данных.
Общая файловая система
Папка 📂 filesystem позволяет организовать общие файлы, полезные для приложения, с ограничениями доступа.
Любой файл, который непосредственно используется в коде приложения, должен храниться здесь.
Ограничения делятся на:
Приватный
Доступ к папке 📂 private для чтения или записи должен предоставляться только аутентифицированным пользователям приложения.
Публичный
Папка 📂 public предназначена для внешнего доступа.
Сервер
Папка 📂 server разрешает чтение и запись только из внутреннего кода приложения.
Таким образом, ни один внутренний или внешний пользователь не имеет доступа к её содержимому.
Доступ к её содержимому возможен только через код.