【发布时间】:2020-05-28 12:58:39
【问题描述】:
我使用带有 mongoDB 作为存储的 Spring Boot 应用程序,并希望存储编码为 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;
}
}
我是否必须像这里提到的那样将图像值单独存储为 inputStream:
https://www.baeldung.com/spring-boot-mongodb-upload-file
或者还有其他方法吗?
【问题讨论】:
-
MongoDB 可以存储巨大的文件(如果需要,可以存储 TB)。您不需要将图像序列化为 Base64 字符串,因为 GridFS 接受原始文件并存储在名为块的小部分中。如果您仍然需要存储为 Base64,则需要将您的 Object 转换为 Stream 并调用相应的方法
标签: mongodb image spring-boot gridfs