如何将inputstream转换为InputStreamsource或数据源以附加到Spring JavaMail中

2skhul33  于 2022-09-18  发布在  Spring
关注(0)|答案(2)|浏览(664)

我从Jsch Channel SFTP获得了输入流,如下所示。

ChannelSftp channelSftp = (ChannelSftp) channel;
   InputStream input = channelsftp.get(unixPath); // unixPath is path to my file which is on SFTP server

我必须将unixPath中的文件附加到Spring Java Mail附件中。但是当我看到Spring JavaMail的API addAttachment()方法时,它只需要InputStreamSourceDatasource。我的问题是我无法从从SFTP通道获得的inputStream获得InputStreamSourceDatasource

如何从上面的InputStream中获取InputStreamSourceDatasource

velaa5lx

velaa5lx1#

在文档中,InputStreamSource是一个接口。它的实现之一是InputStreamResource,它有一个接受InputStream的构造函数。以下是它的JavaDoc。

您应该能够这样设置您的呼叫:

addAttachment("Not porn", new InputStreamResource(inputStream));
voj3qocg

voj3qocg2#

我在VPS上托管了一个在Docker中的Spring Boot应用程序。此代码将在本地系统上运行,同时在IDE中进行开发**,并且如果.jar文件 Package 在Docker映像中**:

案例示例:

我喜欢得到一份PDF文件。PDF文档位于static/docs/not-a-porn.PDF

1)连接ResourceLoader类。

private final ResourceLoader resourceLoader;

public MyService(@Autowired ResourceLoader resourceLoader) {  
    this.resourceLoader = resourceLoader;
}

2.)通过pathOfAttachment(String)创建资源。

String pathOfAttachment = "classpath:static/docs/not-a-porn.PDF"
Resource resource = this.resourceLoader.getResource(pathOfAttachment);

Resource是扩展InputStreamSource的接口,如您在文档中所见:

public interface Resource extends InputStreamSource

来源:org.springframework.core.ioLink to documentation (click here)

相关问题