簡體   English   中英

使用Java將流寫入mongoDB

[英]Write stream into mongoDB in Java

我有一個文件存儲在mongoDB中。 我想要的是避免加載整個文件(可能是幾MB),而我想打開流並將其指向mongoDB以保持寫操作的性能。 我不介意將內容存儲在base64編碼的byte []中。

之后我想在讀取文件時也這樣做,即不要將整個文件加載到內存中,而是在流中讀取它。

我目前正在使用帶有Vertx服務器的hibernate-ogm,但是如果它有效地服務於原因我可以切換到不同的api。

我想實際存儲一個包含多個字段和多個附件的文檔。

您可以使用GridFS 特別是當您需要存儲更大的文件(> 16MB)時,這是推薦的方法:

File f = new File("sample.zip");
GridFS gfs = new GridFS(db, "zips");
GridFSInputFile gfsFile = gfs.createFile(f);
gfsFile.setFilename(f.getName());
gfsFile.setId(id);
gfsFile.save();

或者,如果你有一個InputStream in

GridFS gfs = new GridFS(db, "zips");
GridFSInputFile gfsFile = gfs.createFile(in);
gfsFile.setFilename("sample.zip");
gfsFile.setId(id);
gfsFile.save();

您可以使用GridFS.find方法之一加載文件:

GridFSDBFile gfsFile = gfs.findOne(id);
InputStream in = gfsFile.getInputStream();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM