【问题标题】:Can I negatively close a SFTP file transfer from the client side?我可以从客户端否定关闭 SFTP 文件传输吗?
【发布时间】:2015-06-06 20:44:32
【问题描述】:

我正在与下载文件后删除文件的 SFTP 服务器进行交互。为了防止数据丢失,我需要读取文件,将其放在持久存储上,然后关闭连接以表明我已收到它。对我来说不明显的是,如果我不能安全地存储文件会发生什么。有没有办法以语义上指示“我正在关闭连接但它失败”的方式关闭连接?我在 RFC 中找到的只是一条 SSH_FXP_CLOSE 消息,它似乎只表示传输成功。所有其他错误消息类型似乎仅在服务器向客户端返回响应时使用,而不是相反。

【问题讨论】:

    标签: sftp ibm-sterling


    【解决方案1】:

    您不能向 SFTP 服务器发出错误信号,这不是 SFTP 的用途。

    对于您的特定情况,简单地关闭 SFTP 连接而不明确关闭文件(不发送 SSH_FXP_CLOSE)可能会向服务器表明出现问题。

    虽然它确实取决于您的服务器实现,但它认为什么是错误。 SFTP 服务器的文档应描述触发删除的原因。

    在 SFTP 中,没有什么比“下载”操作更好的了(与 FTP RETR 命令相反)。只有琐碎的文件操作,如打开文件(用于读取或写入)、读取文件片段、关闭文件。所以并不是“下载后服务器删除文件”那么简单。该规则可以说例如“服务器在文件之前打开读取后关闭后删除文件”或类似的内容。

    【讨论】:

    • 服务器是 IBM 的“Sterling Integrator”EDI 产品,我的理解是有一个“下载计数器”在每次发布句柄时递减。根据您的信息,似乎最好的选择是放弃读取并模拟网络故障。该产品似乎可以管理可恢复的下载,因此它已准备好应对这种情况。
    • 感谢您的回答。我几乎无法要求更明智的意见。
    • @MartinPrikyl ,我想提请您注意一个后续问题,因为它涉及 WinSCP - stackoverflow.com/questions/30676105/…
    猜你喜欢
    • 2019-09-26
    • 2018-07-04
    • 1970-01-01
    • 1970-01-01
    • 2011-03-23
    • 2015-09-06
    • 1970-01-01
    • 2011-01-05
    • 1970-01-01
    相关资源
    最近更新 更多