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

Store large Image Files coded as base64 in MongoDB

我使用带有 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 中,它将 return 一个引用 ID
  2. 将引用的 ID 添加到您的对象并将其存储到 mongoDB
  3. 中的不同文档中