我是靠谱客的博主 高贵煎蛋,这篇文章主要介绍ftp桥接到http服务,现在分享给大家,希望可以做个参考。

先说一下我的需求:我的linode服务器最近ftp和sftp连不上了,端口被封了,只有http可以访问,我没有办法上传文件了。因为我平常都用beyond compare上传文件,很方便。所以我希望能通过在本地起一个ftp服务,连接远程的http服务器,这样我的beyond compare还能继续使用。


需求很简单,只需要实现一个可扩展的ftp服务器,然后把读本地文件的部分改写为通过远程的http接口访问服务器上的文件系统。经过几天的努力,该功能已经全部实现了。


遇到的问题:

1. 大文件,对于大的文件,一般的http服务器都有上传文件大小限制,我是按段上传的,所以不会有这个问题。可以上传任意大小的问题。


2. 上面的问题衍生出来的新的问题,如果文件过大,按段上传可能会发起很多http请求,过多的连接有可能耗尽本机的socket端口,

   目前采用http1.1的长连接来减少连接次数,并同时设置socket的reuseAddress为true。


3. 分段上传所分段不可太小,否则很慢,如果太大,浪费内存,如果同时上传文件过多,很可能很快耗尽虚拟机内存,因为来不及释放。所以采用自动调整缓存大小的策略,一开始使用一个很小的缓存,每次flush缓存大小扩容一倍直到配置的最大值,最大不超过1M(可配置)。 一般的小文件基本不需要扩容。


4. 为了使程序尽可能简单,一开始上传采用段数据的时候采用了base64编码,经测试大文件感觉较慢,后来改为chunked方式上传,速度可以提升好几倍。

最后

以上就是高贵煎蛋最近收集整理的关于ftp桥接到http服务的全部内容,更多相关ftp桥接到http服务内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(76)

评论列表共有 0 条评论

立即
投稿
返回
顶部