Spring mvc 为什么在SpringWebApps的生产场景中,最好不要在应用程序的文件系统中加载内容?

Spring mvc 为什么在SpringWebApps的生产场景中,最好不要在应用程序的文件系统中加载内容?,spring-mvc,spring-boot,image-uploading,Spring Mvc,Spring Boot,Image Uploading,关于上传文件的指南中有以下警告: 在生产场景中,您更可能将文件存储在临时位置、数据库或NoSQL存储(如Mongo的GridFS)中。最好不要在应用程序的文件系统中加载内容 没有任何其他背景。这是出于安全、性能或其他原因吗?因为文件系统通常不是存储数据的合适位置: 如果您的应用程序是集群的,那么每台机器都有自己的文件系统,因此对机器a的请求不会看到机器B上以前的请求在文件系统中存储了什么 如果您的应用程序部署在云中的PAAS上,提供了水平可伸缩性,PAAS可以启动新的VM或容器来维持负载,然后

关于上传文件的指南中有以下警告:

在生产场景中,您更可能将文件存储在临时位置、数据库或NoSQL存储(如Mongo的GridFS)中。最好不要在应用程序的文件系统中加载内容


没有任何其他背景。这是出于安全、性能或其他原因吗?

因为文件系统通常不是存储数据的合适位置:

  • 如果您的应用程序是集群的,那么每台机器都有自己的文件系统,因此对机器a的请求不会看到机器B上以前的请求在文件系统中存储了什么
  • 如果您的应用程序部署在云中的PAAS上,提供了水平可伸缩性,PAAS可以启动新的VM或容器来维持负载,然后丢弃这些VM和容器,从而丢失您可能放在文件系统上的所有内容
  • 有些平台甚至不允许您访问文件系统
  • 您可能已经为数据库制定了备份策略,或者依赖外部存储服务为您提供备份策略。在文件系统上存储数据将迫使您提供另一种备份策略