正在检查Twisted's检索的文件FTPClient.retrieveFile文件完备性方法

2024-05-29 07:38:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个自定义的ftp客户端,作为我们的合作伙伴之一雇用的分包商传入的多媒体内容的把关人。我选择twisted是因为它允许我在将文件写到本地磁盘之前解析文件内容,而且我一直在寻找机会来探索twisted。我在用twisted.protocols.ftp.FTPClient.retrieveFile文件'获取文件,将转义路径传递给文件,并将协议传递给“retrieveFile”方法。我肯定要在本地从服务器上取下整个文件的tp开关,因为我肯定要在本地把文件写回文件。我的问题是,我真的需要担心这个问题吗,或者我可以假设如果没有完全检索到文件,会发生错误返回吗?在


Tags: 文件方法路径协议客户端内容twistedftp
1条回答
网友
1楼 · 发布于 2024-05-29 07:38:15

在这方面有一些针对行为的单元测试。在

twisted.test.test_ftp.FTPClientTestCase.test_failedRETR是最直接相关的一个。它涵盖了在文件传输过程中控制和数据连接丢失的情况。在

在我看来,这个领域的测试覆盖率可以显著提高。例如,没有测试覆盖在传输过程中仅丢失数据连接的情况。然而,有一点使这一点变得棘手,那就是FTP不是一个非常健壮的协议。文件传输的结束由数据连接关闭发出信号。为了安全起见,您必须检查是否收到了与预期相同的字节数。执行此检查的唯一方法是预先知道文件大小,或者使用LISTFTPClient.list)向服务器请求文件大小。在

考虑到所有这些,我建议在文件传输完成后,总是询问服务器应该获得多少字节,并确保它与传输到协议的字节数一致。有时您可能会在从retrieveFile返回的Deferred上得到一个错误返回,但是即使在没有返回的情况下,这也会保证您的安全

相关问题 更多 >

    热门问题