如何在byte []中创建远程目录中的文件,因为PollableChannel中有send()方法 . 从下面的代码能够发送文件到远程,但它在本地机器上创建一个文件 . 如何避免在本地机器上创建文件?
PollableChannel remoteFileChannel = context.getBean("outputChannel", PollableChannel.class);
Message sendFile = MessageBuilder.withPayload("hi how are you".getBytes()).build();
remoteFileChannel.send(sendFile);
spring sftp配置:
class="org.springframework.integration.sftp.session.DefaultSftpSessionFactory"
p:host="${sftp.host}"
p:port="${sftp.port}"
p:user="${sftp.username}"
p:password="${sftp.password}"
p:allowUnknownKeys="${sftp.allowUnknownKeys}" />
session-factory="sftpSessionFactory"
channel="outputChannel"
charset="UTF-8"
remote-directory="${sftp.remotedir}"
remote-filename-generator="randomFileNameGenerator" />
如何创建一个具有随机名称的文件并将字节写入其中?
我试过自定义文件名生成器类:
@Component("randomFileNameGenerator")
public class RandomFileNameGenerator implements FileNameGenerator {
@Override
public String generateFileName(Message> msg) {
long number = (long) Math.floor(Math.random() * 90000000L) + 1000000L;
String fileName = String.format("%d.txt", number);
return fileName;
}
}
如果文件名未设置,则创建名称为“adas-asdfsadf-545sadf.msg”的文件 . 任何人都可以指出我做错了什么