本节,我们将介绍如何基于MongoDB技术来存储二进制文件,从而实现一个文件服务器MongoDBFileServer。
文件服务器的需求
本文件服务器致力于小型文件的存储,比如博客中的图片、普通文档等。由于MongoDB支持多种数据格式的存储,对于二进制的存储自然也是不在话下,所以可以很方便地用于存储文件。由于MongoDB的BSON文档对于数据量大小的限制(每个文档不超过16MB),所以本文件服务器主要针对的是小型文件的存储。对于大型文件的存储(比如超过16MB),MongoDB官方已经提供了成熟的产品GridFS,读者朋友可以自行了解。
文件服务器应能够提供与平台无关的REST API供外部系统调用。
文件服务器整体的API设计如下。
·GET /files/{pageIndex}/{pageSize}:分页查询已经上传了的文件。·GET /files/{id}:下载某个文件。·GET /view/{id}:在线预览某个文件。比如,显示图片。·POST /upload:上传文件。·DELETE /{id}:删除文件。
我们创建一个新项目,称之为mongodb-file-server。
所需技术
本例子采用的开发技术如下。
·MongoDB 3.4.6。·Spring Boot 2.0.0.M2。·Spring Data MongoDB 2.0.0.M4。·Thymeleaf 3.0.6.RELEASE。·Thymeleaf Layout Dialect 2.2.2。·Embedded MongoDB 2.0.0。
其中,Spring Boot用于快速构建一个可独立运行的Java项目;Thymeleaf方便展示数据;Embedded MongoDB则是一款由Organization Flapdoodle OSS出品的内嵌MongoDB,可以在不启动MongoDB服务器的前提下,方便进行相关的MongoDB接口测试。
本文所演示的项目,是采用Gradle进行组织以及构建的,如果对Gradle不熟悉,也可以自行将项目转为Maven项目。
build.gradle文件完整配置内容如下。
buildscript{ // buildscript代码块中脚本优先执行 // ext用于定义动态属性 ext { springBootVersion = "2.0.0.M2" } // 使用了Maven的中央仓库(也可以指定其他仓库) repositories { //mavenCentral m
本站所有软件信息均由用户上传发布,版权归原著所有。如有侵权/违规内容,敬请来信告知邮箱:764327034@qq.com,我们将及时撤销! 转载请注明出处:https://czxurui.com/zx/11219.html
发表回复
评论列表(0条)