Tag: sftp

恢复文件传输的中途失败文件传输

我在我的ColdFusion应用程序中使用这个jsch库( http://www.jcraft.com/jsch/ )。 我的应用程序想要实现一个重试机制 – 如果文件传输失败了一半,那么我想从它停止的地方恢复(或继续)文件传输。 使用这个jsch库可以实现吗?

使用SFTP JSch库可以上传多部分文件吗?

我想上传一个非常大的文件,大小可以是1 GB 。 是否可以上传或下载SFTP服务器? 我正在使用JSch库。

使用ssh和sftp通过Java连接到Unix

我需要通过SSH和SFTP协议使用Java连接到Unix服务器并执行特定命令并执行文件传输。 但是在Unix上启用了RSA令牌认证。 所以我需要在运行时获取当前的RSA令牌密码以及用户密码。 那么如何通过Java完成这项工作呢? 是否有任何Java API? 仅供参考,Unix使用putty登录步骤: 使用服务器IP连接。 项目清单 给用户名。 给密码 给出6位数的SecurID生成的数字。

Apache Mina SFTP服务器侧通道侦听器用于传入文件

我试图弄清楚如何为基于Java的SFTP服务器实现服务器端侦听器,以提醒我传入的文件传输。 我正在使用最新版本的Apache Mina。 我的方案是我的服务器只是从客户端接收一个文件,并在存储之前对文件做“某事”。 这可能是错误检查/规则validation/在其他地方转发内容。 事情是我想在保存到我的系统之前这样做。 我在文档方面遇到了困难,无法找到一个显示通过访问传入文件流实现的侦听器的工作示例。 我从指南中获取了一个非常简单的服务器: public void setupServer() throws IOException { sshd = SshServer.setUpDefaultServer(); sshd.setFileSystemFactory(new NativeFileSystemFactory() { @Override public FileSystemView createFileSystemView(final Session session) { return new NativeFileSystemView(session.getUsername(), false) { @Override public String getVirtualUserDir() { return testFolder.getRoot().getAbsolutePath(); } }; }; }); sshd.setPort(8001); sshd.setSubsystemFactories(Arrays .<NamedFactory> asList(new SftpSubsystem.Factory())); sshd.setCommandFactory(new ScpCommandFactory()); sshd.setKeyPairProvider(new SimpleGeneratorHostKeyProvider(testFolder .newFile(“hostkey.ser”).getAbsolutePath())); sshd.setPasswordAuthenticator(new PasswordAuthenticator() […]

将私钥作为字符串的Java SFTP客户端

Apache Commons和JSch都需要私钥文件来建立SFTP连接。 我正在处理的项目将用于连接多个SFTP服务器。 因此,我们不希望部署多个私钥文件,而是将这些密钥保存为加密配置文件中的字符串。 是否存在不需要私钥文件对象的SFTP库?

使用Java中的JSch列出SFTP服务器上目录的完整层次结构

我想使用JSch在远程位置显示目录的完整层次结构。 该位置有多个文件夹,文件夹可能有也可能没有文件。 我编写的代码(参考SFTP读取目录中的所有文件 ): sftpChannel.cd(remotePath); Vector files = sftpChannel.ls(“*”); List ret=new ArrayList(); for (int i = 0; i < files.size(); i++) { Object obj = files.elementAt(i); if (obj instanceof com.jcraft.jsch.ChannelSftp.LsEntry) { LsEntry entry = (LsEntry) obj; if (true && !entry.getAttrs().isDir()) { ret.add(entry.getFilename()+"file"); } if (true && entry.getAttrs().isDir()) { if (!entry.getFilename().equals(".") && !entry.getFilename().equals("..")) { ret.add(entry.getFilename()+"folder"); } […]

将文件从SFTP直接下载到HTTP响应,而不使用中间文件

我正在尝试使用Java JSsch库通过SFTP下载文件。 我成功地将文件下载到本地目录。 **但是,我只需要将文件直接下载到浏览器而不提供任何本地目标路径(例如如何在Chrome中下载文件)。 我使用Spring控制器AngularJS Promise来捕获响应。 以下是我的代码。 @RequestMapping(value = “/downloadAttachment”, method = RequestMethod.POST, produces = MediaType.APPLICATION_OCTET_STREAM_VALUE) public void downloadAttachment( @RequestParam(value = “fileName”) String fileName, @RequestParam(value = “filePath”) String filePath, @RequestParam(value = “fileId”) String fileId, HttpServletResponse response, Locale locale) throws Exception { InputStream is = null; if(!fileName.isEmpty() && !filePath.isEmpty() && !fileId.isEmpty()){ String directory = filePath; java.util.Properties […]

Java – 从SFTP直接下载到内存而无需写入文件

我在过去几天一直在研究这个问题,但似乎无法找到从SFTP服务器读取内容并将内容写入内存而不是文件的任何示例或文档。 它让我想到这是否可能。 我希望将从SFTP流下载的文件写入内存中的字节数组,然后在字节数组在内存中时使用它。 这可能吗?

使用JSch库在Java中获取会话和SFTP通道

我正在为SFTP使用JSch库。 我需要在SFTP服务器上做几个操作,比如移动其他目录中的远程文件,拉文件等。对于所有这些操作,我需要Session然后从中获取Channel然后将其转换为ChannelSftp 。 这是多余的步骤。 所以我想把它抽象成一个private方法。 private ChannelSftp getChannelSftp() throws JSchException { java.util.Properties config = new java.util.Properties(); config.put(“StrictHostKeyChecking”, “no”); JSch jsch = new JSch(); Session session; session = jsch.getSession(VENDOR1_USERID, VENDOR1_SERVER, VENDOR1_PORT); session.setPassword(VENDOR1_PASSWORD); session.setConfig(config); session.connect(); ChannelSftp channelSftp = null; Channel channel = session.openChannel(“sftp”); channel.connect(); channelSftp = (ChannelSftp) channel; return channelSftp; } 但是在SFTP操作之后,我需要断开与通道和会话的连接。 使用上面的方法,虽然我可以在调用方法中断开Channel但是我不能断开与Session连接,因为我没有可能是泄漏的实例所以我现在将它分成getSession()方法,现在ChannelSftp创建是所有方法都重复。 什么是更好的设计/重构方法 ? private Session […]

Java:使用SFTP检查文件是否已完全复制

我有一个轮询器每35秒在某个目录上运行。 这些文件通过SFTP服务器放在此目录中。 问题在于轮询与复制文件的时间冲突。 它还会选择尚未完全复制的不完整文件。 我们可以知道文件的状态,无论是处于复制模式还是复制模式?