2024.06.29

因为有些时候需要从其他人的电脑上copy点文件过来看看。

而用向日葵或者是todesk 转发速度有限很慢,

用微信之类的工具倒是满速,不过这台电脑可能不会安装微信。

用百度云等之类,先上传,在转发,就更麻烦了,不仅要先下云盘,还要上传,还要分享,分享之后,还需要我手动用百度云下载,如果这个时候我没有会员,那就不知道是猴年马月的事情了。


我只需要一个网速够快的服务器就可以解决这个事情。

而且分享的事情我已经解决了,通过ererything自带的文件服务器功能。

那我只需要再开一个端口,用于文件上传就可以了,这个东西用java开源的框架自带,用python的 flask 框架也可以做,而且我之前实现过。

不过想了想,我其实并不需要这些框架,为了实现这个需求太重了。我仅仅是需要一个文件可以上传和下载的文件管理器,而且是仅仅需要上传功能即可。


我想起之前用过的postjson 的开发的一个独立的exe, 是我之前用作这个需求的初期版本,不过后面被 everything 替换掉了。

找到这个exe,运行发现并没有办法上传,原因未知,找到这个官网都404了,提示nginx error。


于是求助 chatgpt ,他给我一个选择是使用pyhon 的http.server 建立一个文件服务器,这个方案看到就被否掉了,我之前做文件服务器的时候使用过,虽然只有一行脚本,但这个并不好用,首先是速度上,有限制,原因只是,就是很慢,其次是默认不支持中文,还是需要写一些代码做转换,我感觉很没有必要。

优化是肯定可行的,但为了这么一个自发性的需求,花时间研究这个很没有意义。


然后依次验证了几个方案,有些是要docker安装,也就是运行在linux上的,pass,有些支持windows ,HFS 但是文件共享并不方便,内部自称一体,还有用户管理,等乱七八糟的,先登录才能用。


就突然就感觉为什么这么简单的需求,没有现成的 几M的exe ,运行即可用的时候,突然想到,也是,我这个需求很奇葩,一般人也不会有一个大带宽的暴漏在公网的服务器,就算是有一般也是linux。而且端口裸漏,基本很容易被爆掉。

我应该搜索局域网工具,然后暴漏在公网即可。但是局域网一般都有更好的选择,比如SMB,FTP,HTTP 反而很小众。


又换了几个关键词,发现他告诉我可以使用nginx,只需要配置nginx即可。大喜过望。

因为本来我有又配nginx 在那台电脑上,按照提示,改了配置,重启,又生成了一个简单的html 和js配合上传的文件,测试,果然可以了。

多了几个,发现文件一旦超过100M, 上传就会失败。

查了查发现是 nginx的限制,继续更改配置文件。重启。失败。能上传继续卡100M

在这里折腾了两个小时,一直怀疑是我哪里没有配置好,所以失败了。

后来在一个犄角旮瘩里,看到除了配置失败,还有可能是浏览器缓存导致的。

远程了另一台电脑测试,成功。


看了下网页,又感觉我需要在上传成功之后,展示文件列表。继续gpt生成,一次搞定,完美上传速度,可以吃满局域网。


然后我又让gpt写了c#的上传代码,测试,单线程的,上传比网页要慢。C#肯定是要优于js的,也就是依旧是我的问题。

想了想,让GPT写了一个分块上传,速度拉满了。新的问题来了,nginx的上传模块,不支持分块上传,需要我在服务端处理分块上传并在最后合并这些分块。

那不如一开始的时候就选择使用完整的后台框架,比如flask,接收的时候处理一下分块。

问题就回到了原点。

那就是取舍的问题。

不如就使用网页上传吧,C# 开一个网页,然后我远程的时候,手动上传回来就可以了。