java - 在 Java EE 应用程序中保存上传文件的首选方式是什么?

标签 java spring jakarta-ee spring-mvc

正如标题所述,在 Java EE Web 应用程序中保存上传文件的首选方式是什么?我阅读了其他问题的一些答案,如果没有进一步解释,不建议将文件保存到 servlet 容器的文件系统。有人说你应该将它保存到数据库(但我对我之前读到的内容表示怀疑),有人说你应该使用 JCR,我能找到的唯一实现是 Apache JackRabbit,它似乎不是很活跃?

最好的选择是什么?除了提到的还有其他的吗?您选择其中一种而不是另一种的原因是值得赞赏的。

最佳答案

根据您的环境,您可能需要执行以下操作之一:

  1. 您的服务器位于云端。您需要使用共享云存储服务,例如 Amazon S3 (顺便说一句,它有一个很好的 API)

  2. 您托管在传统服务器上。在这种情况下,最佳实践是使用共享 NAS,但云存储也是一种选择,除非您的客户有监管问题

  3. 您主要处理许多小文件,并且希望它们可供搜索。对于这种情况,您将选择 BLOB 数据库列。

  4. 如果您正在处理大文件(例如视频),您可能需要考虑 NAS/云存储,并使用数据库作为 NAS/S3 位置的引用

    <

使用这些选项的原因是您不想将数据沙箱到正在运行的实例中。此架构允许将应用程序的其他实例联机或进行简单的服务器迁移,但仍然可以访问共享数据。

关于java - 在 Java EE 应用程序中保存上传文件的首选方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16222426/

相关文章:

java - 没有 @Validated 的 Spring JSR303/349 验证

java - Mule中JMS ActiveMQ的过滤器是如何实现的?

java - 如何将每个数字打印到一定数量

java - Spring Bean 范围

java - Glassfish JNDI 树链接

postgresql - 使用 LDAP 集成的 Multi-Tenancy

java - 如何使用 jets3t 访问 S3?

java - Spring Boot - 不同的模型表示/多个 API

java - 如何在使用 Java JSON Patch 修补时禁止更新字段

java - 使用 ExtJS 进行页面重定向/刷新