我打算做什么:我想ContentStore在同一个系统中使用多个 s:一个用于新上传的文件(文件系统),一个用于(长期)归档(AWS S3 或 GCS)。
我尝试过的(以及实际有效的):
File通过另一个属性扩展类private String contentStoreName;像这里描述的那样创建两个
ContentStore:Spring-Content:将文件从内容存储移动到另一个内容存储gettingstarted.FileContentController.setContent(Long, MultipartFile)通过为 used 设置标识符来扩展ContentStore:f.get().setContentStoreName("regular");根据存储的内容获取内容
contentStoreName:InputStream input; if (Objects.equals(f.get().getContentStoreName(), "archive")) { input = archiveContentStore.getContent(f.get()); } else { input = regularContentStore.getContent(f.get()); }contentStoreName从一个移动到另一个时更改ContentStore:Resource resource = regularContentStore.getResource(fileEntity.get()); archiveContentStore.setContent(fileEntity.get(), resource); fileEntity.get().setContentStoreName("archive"); filesRepo.save(fileEntity.get());
关于这个的气味:尽管这段代码有效,但我想这不是预期的方式,因为Spring-content通常在后台做很多注释和一些魔法。但我找不到ContentStore.
问题:有没有更有意的方式来做到这一点Spring-Content?