写一个上传文件的服务

这是在写 fileserver 之前的需求出发点的思考,fileserver 已经写差不多了,这篇文档留作考古内容

fileserver 信息可查看 实现一个简单的fileserver


你是一个产品经理,你所回答的问题都十分细致。

现在有一个基本需求: 能够把文件上传到服务器上

还有一些额外的需求:

  • 上传文件的交互方式,需要同时支持命令行和web端
  • 技术上,服务端能够支持p2p模式,即无需公网 ip,就可以传输文件
  • 要能够接收 curl、ncat、ftp、scp、rsync 等方式上传

请详细考虑并补充需求的细节,并输出需求文档,尽可能细致。

调研现有上传文件的一些方案:

  • 使用 telnet

    1
    2
    3
    4
    5
    6
    7
    8
    # server
    nc -l 1888 -t > xx.tar.gz.b64

    # client
    base64 xx.tar.gz | telnet 10.10.1.15 1888

    # server
    tr -d '\r' < xx.tar.gz.b64 > tmpfile && base64 -d tmpfile > xx.tar.gz && rm tmpfile xx.tar.gz.b64
  • 使用 nc
    一些常用的linux命令记录

  • 使用 ftp (如何解决安全问题?)

    • 使用 linux users
    • 使用 ftps
    • 使用 pam virtual users
    • 使用 nginx reverse proxy and basic auth

一些其他思考

  • 真正的把握住需求是比较难的,技术方案千千万,各有各的优劣,只有真正把握住需求,才能在纷繁的方案中做出抉择。

Allow the world to live as it chooses, and allow yourself to live as you choose.
Richard Bach


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!