mongodb gridfs java_MongoDB基于GridFS管理文件

前言

GridFS是一种将大型文件存储在MongoDB的文件规范:

数据库支持以BSON格式保存二进制对象。 但是MongoDB中BSON对象最大不能超过4MB。

GridFS 规范提供了一种透明的机制,可以将一个大文件分割成为多个较小的文档。

为实现这点,该规范指定了一个将文件分块的标准。每个文件都将在文件集合对象中保存一个元数据对象,一个或多个块对象可被组合保存在一个块集合中。

上传文件

Shell

mongofiles put xxx.txt

常用参数如下:

-d 指定数据库

-u –p 指定用户名,密码

-h 指定主机

-port 指定主机端口

-r 如果存在同名文件则在put成功后删除其他同名文件

通过这样的命令就可以把文件上传到fs集合中。

Java

//获取db

MongoClient mClient = new MongoClient("10.211.55.8");

db = mClient.getDB("test");

//得到Gridfs对象

GridFS fs = new GridFS(db);

//访问要上传的文件

File file = new File("/Users/luoaz/05testDir/files/test1.txt");

//执行保持

GridFSInputFile gfFile = fs.createFile(file);

gfFile.save();

下载文件

Shell

mongofi

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Java操作MongoDB GridFS存储图片可以分为以下几个步骤: 1. 首先需要创建MongoDB的Java驱动程序依赖,可以使用Maven等工具进行添加。 2. 连接MongoDB数据库,可以使用MongoClient类进行连接。 ```java MongoClient mongoClient = new MongoClient("localhost", 27017); ``` 3. 获取GridFSBucket对象,GridFSBucket是一个用于存储大文件的类,可以通过它来上传和下载文件。 ```java MongoDatabase db = mongoClient.getDatabase("test"); GridFSBucket gridFSBucket = GridFSBuckets.create(db); ``` 4. 创建一个文件输入流,用于读取本地图片文件。 ```java File file = new File("test.jpg"); FileInputStream inputStream = new FileInputStream(file); ``` 5. 使用GridFSBucket对象的uploadFromStream方法上传图片。 ```java ObjectId fileId = gridFSBucket.uploadFromStream("test.jpg", inputStream); ``` 6. 关闭输入流和MongoDB连接。 ```java inputStream.close(); mongoClient.close(); ``` 完整代码示例: ```java import com.mongodb.MongoClient; import com.mongodb.client.MongoDatabase; import com.mongodb.client.gridfs.GridFSBucket; import com.mongodb.client.gridfs.GridFSBuckets; import org.bson.types.ObjectId; import java.io.File; import java.io.FileInputStream; import java.io.IOException; public class GridFSExample { public static void main(String[] args) throws IOException { MongoClient mongoClient = new MongoClient("localhost", 27017); MongoDatabase db = mongoClient.getDatabase("test"); GridFSBucket gridFSBucket = GridFSBuckets.create(db); File file = new File("test.jpg"); FileInputStream inputStream = new FileInputStream(file); ObjectId fileId = gridFSBucket.uploadFromStream("test.jpg", inputStream); inputStream.close(); mongoClient.close(); System.out.println("File uploaded with id: " + fileId); } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值