将编码为 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 存储元数据
或
如果您想存储完整的对象,请按照以下步骤操作:
- 仅将文件存储在 gridfs 中,它将 return 一个引用 ID
- 将引用的 ID 添加到您的对象并将其存储到 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 存储元数据
或
如果您想存储完整的对象,请按照以下步骤操作:
- 仅将文件存储在 gridfs 中,它将 return 一个引用 ID
- 将引用的 ID 添加到您的对象并将其存储到 mongoDB 中的不同文档中