Почему лучше НЕ загружать файловую систему вашего приложения контентом в производственном сценарии для весенних веб-приложений?

На руководство spring.io по загрузке файлов есть это предупреждение:

В производственном сценарии вы, скорее всего, будете хранить файлы во временном местоположении, в базе данных или, возможно, в хранилище NoSQL, таком как GridFS Монго. Лучше НЕ загружать файловую систему вашего приложения контентом.

без какого-либо другого контекста. это из соображений безопасности или производительности или что-то еще?

1 ответ

Решение

Поскольку файловая система в большинстве случаев не подходит для хранения данных:

  • если ваше приложение кластеризовано, каждая машина будет иметь свою собственную файловую систему, и запрос к машине A, таким образом, не увидит, что было сохранено в файловой системе по предыдущему запросу на машине B
  • если ваше приложение развернуто на облаке PAAS, обеспечивая горизонтальную масштабируемость, PAAS может запустить новые виртуальные машины или контейнеры, чтобы выдержать нагрузку, а затем отбросить эти виртуальные машины и контейнеры, потеряв при этом все то, что вы могли поместить в файловую систему.
  • некоторые платформы даже не позволяют получить доступ к файловой системе
  • у вас, вероятно, уже есть стратегия резервного копирования для вашей базы данных, или вы полагаетесь на внешние службы хранения, чтобы предоставить ее вам. Хранение данных в файловой системе заставит вас предоставить другую стратегию резервного копирования
Другие вопросы по тегам