public ObjectId store(InputStream inputStream, String originalFilename) {
return gridFsTemplateFourth.store(inputStream, originalFilename);
}
一般只存文件,就可以这样。
结果是:
可以根据id查询,也可以根据文件名来查询。
public GridFSFile findScriptFile(String id) {
return gridFsTemplateFourth.findOne(new Query(Criteria.where("_id").is(id)));
}
public GridFSFile findScriptFile(String name) {
return gridFsTemplateFourth.findOne(new Query(Criteria.where("filename").is(name)));
}
如果想存点其他信息进去,可以存到元数据里面去
public ObjectId store(InputStream inputStream, String originalFilename,String taskId,String dev) {
DBObject metaData = new BasicDBObject();
metaData.put("taskId", taskId);
metaData.put("dev", dev);
return gridFsTemplateFourth.store(inputStream, originalFilename,metaData);
}
结果是这样的:
查询方式是这样的:
public GridFSFile findScriptFileByTask(String taskId,String dev) {
return gridFsTemplateFourth.findOne(new Query(Criteria.where("metadata.taskId").is(taskId).and("metadata.dev").is(dev)));
}
在保存文件的时候可以根据元数据去去重。写的简单都是初级用法。