Почему лучше НЕ загружать файловую систему вашего приложения контентом в производственном сценарии для весенних веб-приложений?
На руководство spring.io по загрузке файлов есть это предупреждение:
В производственном сценарии вы, скорее всего, будете хранить файлы во временном местоположении, в базе данных или, возможно, в хранилище NoSQL, таком как GridFS Монго. Лучше НЕ загружать файловую систему вашего приложения контентом.
без какого-либо другого контекста. это из соображений безопасности или производительности или что-то еще?
1 ответ
Решение
Поскольку файловая система в большинстве случаев не подходит для хранения данных:
- если ваше приложение кластеризовано, каждая машина будет иметь свою собственную файловую систему, и запрос к машине A, таким образом, не увидит, что было сохранено в файловой системе по предыдущему запросу на машине B
- если ваше приложение развернуто на облаке PAAS, обеспечивая горизонтальную масштабируемость, PAAS может запустить новые виртуальные машины или контейнеры, чтобы выдержать нагрузку, а затем отбросить эти виртуальные машины и контейнеры, потеряв при этом все то, что вы могли поместить в файловую систему.
- некоторые платформы даже не позволяют получить доступ к файловой системе
- у вас, вероятно, уже есть стратегия резервного копирования для вашей базы данных, или вы полагаетесь на внешние службы хранения, чтобы предоставить ее вам. Хранение данных в файловой системе заставит вас предоставить другую стратегию резервного копирования