Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
FTP支持分页吗?_Ftp_Paging_Filezilla_Ftps_Yield Return - Fatal编程技术网

FTP支持分页吗?

FTP支持分页吗?,ftp,paging,filezilla,ftps,yield-return,Ftp,Paging,Filezilla,Ftps,Yield Return,在一些测试中,我们的一个团队报告说,试图通过FTP访问目录时超时。原因是他们代码中的一个bug导致了数百万个小文件被创建 据我所知,超时的原因是请求请求列出目录的内容,并等待所有文件的单个响应 相反,如果服务器立即开始返回找到的结果(想想:yield returnvsreturn),这将避免超时。类似地,如果有返回分页数据的选项,这可能会给我们一个解决方法 由于FTP是请求-响应,而不是请求-响应-响应-…我认为收益场景是不可能的;但可能需要某种形式的分页。这就是说,这可能不会给出解决方案,因为

在一些测试中,我们的一个团队报告说,试图通过FTP访问目录时超时。原因是他们代码中的一个bug导致了数百万个小文件被创建

据我所知,超时的原因是请求请求列出目录的内容,并等待所有文件的单个响应

相反,如果服务器立即开始返回找到的结果(想想:
yield return
vs
return
),这将避免超时。类似地,如果有返回分页数据的选项,这可能会给我们一个解决方法

由于FTP是
请求-响应
,而不是
请求-响应-响应-…
我认为
收益
场景是不可能的;但可能需要某种形式的分页。这就是说,这可能不会给出解决方案,因为分页意味着某种形式的排序,而排序本身会随着文件数量的增加而增加开销


注:这是出于好奇的问题;我们真正的问题解决了,因为我只是清除了目录()来解决这个问题。然而,我的想法是,如果有一个反馈结果的选项,文件夹中的项目数量将不再是一个潜在的问题(只要我们没有在返回结果之前对结果进行排序/过滤/等等)。我们使用的是
FileZilla服务器
,以及.Net客户端(
System.Net.FtpWebRequest
);但是,由于这是理论性的,我对通用答案感兴趣,而不是我们实现的特定答案。

FTP没有任何明确的分页支持。FTP协议本身与您描述的问题无关。对于目录列表,将打开一个新的TCP连接,并且该连接上从第一个字节到最后一个字节的所有内容都假定为目录列表

因此-服务器可以自由地流式返回目录列表,而客户端可以自由地显示接收到的数据。服务器可以随时发回一些目录列表、稍等、再发送一些条目等,客户机可以在目录列表到达时自由显示目录列表,或者在收到整个响应时一次显示所有目录列表

但是请注意,FTP服务器通常会被OS API绑定以列出文件。根据操作系统、文件系统等,API调用列出目录中的文件可能会阻塞一个包含许多小文件的目录,并且需要很长时间,基本上会一次性将所有列表返回到FTP服务器