okx

分布式存储开发实战:基于MongoDB文件服务器

时间:2023-07-09|浏览:164

欧易

欧易(OKX)

用戶喜愛的交易所

币安

币安(Binance)

已有账号登陆后会弹出下载

实战:基于MongoDB文件服务器

本节,我们将介绍如何基于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

« 上一条| 下一条 »
区块链交流群
数藏交流群
区块链币圈-全球区块链数字货币行情、比特币虚拟货币资讯,狗狗币以太坊环保币柚子币莱特币瑞波币等加密数字货币价格非交易行情查询,金色财经巴比特范非小号快讯平台。
趣开心资讯 Qukaixin.cn ©2020-2024版权所有 桂ICP备19010284号-1