基于Java的Web应用程序的文件存储
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于Java的Web应用程序的文件存储相关的知识,希望对你有一定的参考价值。
我正在处理设计基于Java的Web应用程序(基于Spring的具体)。其中一个关键要求是,该应用程序必须接受用户上传的各种格式(pdf,jpeg,dwg,png等)的许多文件。此外,还能够下载回用户的本地计算机。将上传/下载数千个文件。
我在考虑两种方法:
- 将文档上载到运行服务器的同一个框中。大多数文档都将上传到Tomcat运行的框中并从其中下载。我担心,随着文档数量的增加,这可能会影响整体性能。
- 将文档上载/下载到另一个专用于存储/检索文档的服务器。
如果采用第二种方法,Spring应用程序如何向/从远程服务器上传/下载文件?或者在类似的应用程序中使用哪种方法。
或者你能否建议任何其他最佳方式来处理这个要求。
提前致谢。 Ganesh神
许多像这样构建的现代应用程序将使用像Amazon S3这样的外部存储系统来存储这些文件,从而为您提供各种不错的功能 - 高可用性下载,有效无限的磁盘空间池,数据复制等等。
There's a tutorial available for integrating spring with Amazon S3。你应该检查一下。无论您选择S3还是其他东西,方法都是类似的。
你有没有想过使用DB。您可以将这些文件存储为BLOB。这是一个教程:link
“本教程将引导您完成构建一个有趣的Spring MVC Web应用程序的步骤,该应用程序允许用户将文件从她的计算机上传到服务器。这些文件使用Hibernate存储在数据库中。”
至于你考虑的两种方法:
无论哪种方式,您都必须管理这些文件,备份它们并检查是否有足够的空间来存储更多文件。当您接受所有文件时,这可能会导致一些安全问题。
我建议你使用像Apache Sling或Apache Jackrabbit这样的JCR。
Apache Sling™是基于可扩展内容树的RESTful Web应用程序框架,具有以下功能:
- 将请求URL映射到内容存储库中的内容节点的内容解析
- 将内容节点和请求方法映射到处理请求的Servlet的Servlet解析
- 支持WebDAV的默认servlet,从Web表单创建内容和JSON表示
- 一个javascript客户端库,允许通过AJAX访问内容存储库
- 使用Javascript,JSP,Ruby,Velocity和Scala支持服务器端脚本
- 基于OSGi的Apache Felix可扩展性--Felix Web控制台最初是由Apache Sling项目开发的
以上是关于基于Java的Web应用程序的文件存储的主要内容,如果未能解决你的问题,请参考以下文章
从基于 Java 的 azure Web 应用程序读取本地文件共享
转载JAVA秒会技术之图片上传基于Nginx及FastDFS,完成图片的上传及展示