在单个操作中移动SFTP位置中的多个文件

时间:2018-04-24 12:58:46

标签: java sftp jsch mv

我必须在SFTP位置将多个文件从文件夹A移动到B.我在java中使用Jsch库。目前,我的实现是通过调用下面定义的 move 方法逐个完成的。

我们可以一次性传输它,因为我已经有了所有源文件路径 - 这将更有效,而不是来回的多个IO通信。

class Lease(models.Model):
    DUID_text = models.CharField(max_length=100)
    addr_text = models.CharField(max_length=100)
    pub_date = models.CharField(max_length=100)
    e_date = models.CharField(max_length=100)
    prefix = models.CharField(max_length=100)
    addr_cut = models.CharField(max_length=100)
    addr_end = models.CharField(max_length=100)

    def __str__(self):
        return self.addr_cut

class Sub(models.Model):
    Name = models.CharField(max_length=100)
    subnet = models.CharField(max_length=100)
    rang = models.CharField(max_length=100)
    prefix = models.CharField(max_length=100)
    range_low_cut = models.CharField(max_length=100)
    range_low_end = models.CharField(max_length=100)
    range_high_cut = models.CharField(max_length=100)
    range_high_end = models.CharField(max_length=100)

    def __str__(self):
        return self.range_low_cut

1 个答案:

答案 0 :(得分:0)

SFTP协议中没有批量移动操作。所以没有办法实现你的要求。

但你应该重用ChannelSftp。无需为每个移动请求打开和关闭它。实际上,您甚至可以为每个请求打开/关闭整个SFTP连接。

我半年前已经在你对Getting session and SFTP channel in Java using JSch library的答案中提到了你的实际建议,你甚至不打算回答。