我正在使用带有谷歌存储的 Spring Boot。我之前一直在用
spring-content-fs-boot-starter
。一切都很好并且按预期工作。现在我正在尝试使用 spring-content-gcs
。因为引导状态器不可用于 gcs。但是它没有按预期工作。为什么 boot starter 不适用于 spring-content-gcs ?我发现 spring-content-gcs 没有足够的文档。
我的gradle相关依赖是:
实现“com.github.paulcwarren:spring-content-gcs:3.0.6”实现“com.github.paulcwarren:spring-content-rest-boot-starter:3.0.6”`
配置类如下:
`@Configuration@EnableGCPStorage
public class AppConfig implements WebMvcConfigurer {
@Value("${gcp.credentials.location}")
private String gcpKeyFile;
@Value("${gcp.project-id}")
private String gsProjectId;
@Bean
public Storage storage() throws IOException {
InputStream inputStream = new ClassPathResource(gcpKeyFile).getInputStream();
return StorageOptions.newBuilder()
.setCredentials(GoogleCredentials.fromStream(inputStream))
.setProjectId(gsProjectId).build().getService();
}
}
我发布了它保存在数据库中的实体,这很好。要添加内容(图像),我使用 put http 方法并将图像添加为二进制,这会导致以下错误: 找不到合适的 HttpMessageConverter 将请求正文读入 com 类类型的对象......来自请求的照片,内容类型为 image/jpeg;charset=UTF-8"
使用 spring-content-fs-boot-starter 工作正常。
我们如何在 Spring Boot 应用程序中使用 spring-content-gcs,同时使用 spring-content-rest-boot-starter。
这是一个疏忽。 请提出问题,我们将在即将发布的版本中解决。