无法在 Spring AWS 示例上强制转换为 org.springframework.core.io.WritableResource

pup*_*eno 5 spring amazon-s3 amazon-web-services

我正在阅读此文档:

http://cloud.spring.io/spring-cloud-aws/spring-cloud-aws.html

从 Spring 应用程序使用 AWS。我对 S3 特别感兴趣,因此,我设置了应用程序并复制了这段代码以确保设置正常工作:

Resource resource = this.resourceLoader.getResource("s3://myBucket/rootFile.log");
WritableResource writableResource = (WritableResource) resource;
try (OutputStream outputStream = writableResource.getOutputStream()) {
  outputStream.write("test".getBytes());
}
Run Code Online (Sandbox Code Playgroud)

但是当我运行它时,我收到此错误:

java.lang.ClassCastException: org.springframework.web.context.support.ServletContextResource cannot be cast to org.springframework.core.io.WritableResource
Run Code Online (Sandbox Code Playgroud)

任何想法有什么问题?那是设置问题吗?对我来说看起来不像,但我是新手。

小智 -1

尝试将 Resource 类声明/转换为 FileSystemResource:

FileSystemResource resource = this.resourceLoader.getResource("s3://myBucket/rootFile.log");
WritableResource writableResource = (WritableResource) resource;
try (OutputStream outputStream = writableResource.getOutputStream()) {
  outputStream.write("test".getBytes());
}
Run Code Online (Sandbox Code Playgroud)