在MongoDB中存储编码为base64的大型图像文件



>我使用带有mongoDB的spring启动应用程序作为存储,并希望存储编码为base64字符串的大型图像文件。据我所知,mongoDB最多只能存储16MB的文件,所以我必须使用gridfs。在多个页面和教程中,它们存储文件,但我从未找到使用 gridfs 存储对象的示例。

基本示例:

public class Student {
private String firstName;
private String lastName;
private String image;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
}

我是否必须将图像值单独存储为输入流,如下所示:

https://www.baeldung.com/spring-boot-mongodb-upload-file

还是有其他方法?

您可以使用gridfs存储元数据

如果要存储完整的对象,请按照以下步骤操作:

  1. 仅将文件存储在 gridfs 中,它将返回一个引用
  2. 将引用的 ID 添加到您的对象中,并将其存储在 mongoDB 中的不同文档中

最新更新