分享文件服务
今天一个朋友用 qq 邮箱给我发了个 200+ M 的大文件,我无法提取。这让我意识到,在网络上分享大文件也是个比较大的需求。此类服务很多,历史也很悠久(很多网盘也被用户用来解决此问题)。但好用的并不多。
记得 opera 的新版也提供了分享本机文件的功能,可能是墙的原因,在国内也很难用。
我觉得如果为公众提供一个方便的渠道(又尽量压缩成本)来分享自己机器上的文件,或许会有许多用户的。关键在于便捷,功能纯粹。
最简单的方法是让发送文件方在本机架一个 web server ,然后把文件放到 web server 可以管理的文件服务目录中去。这个方案最好实施,对于懂行的同学来说,windows linux 等都提供有 httpd 服务,设置一下即可。对于不懂的同学,提供一个小型软件安装一下也很容易。而文件接收方仅需要用浏览器下载文件即可。
但是这个方案有很大的缺陷。大多数人机器都在防火墙背后,也没有权限可以在网关上设置 NAT 。很大可能是无法使用的。另外,架设 server 隐藏有一定安全上的风险。
而我的想法是这样的:
制作一款简单的小软件鼓励用户安装。(类似 DropBox 那样,只有安装了 client 才能享受服务)
这个软件负责分享本机上的文件,软件设置可以简化到只关联一个文件夹即可。它本身只提供一个 localhost 的 web 服务,方便用户监测自己分享出去的文件列表,以及分享进度等。
在公众网上提供一个 web 服务,其实是一个 proxy 服务,把文件请求转发到每个用户本机的 client 上。注:这里公众网和每个用户机的沟通并不通过 http 协议。而走一个 tcp 长连接。
用户想分享文件的时候,通过本机的服务,获得分享文件夹内指定文件的一个 URI 。这个 URI 其实是由公众服务生成的,类似短网址服务那样的。
文件分享方可以把这个 URI 通过其它手段(比如 IM)发送给接收者。接收者可以用浏览器直接下载。
这个下载过程,公众网上的 web server 只是起到 proxy 作用,一般不 cache 整个文件。仅仅把文件的一段段从用户 client 那里拉过来转发。架设这个公众网上的服务只有带宽成本,无储存成本。
由于用户 client 是定制的软件,可以知道对方下载的进度等等,用起来就和 IM 上传送文件无差别。
这个方案对文件接收者是无额外代价的。
如果服务想收费,可以用用户付费获得更大的带宽或是允许广播文件(允许多个接收方同时下载,或开放多线程下载,甚至是 cache 文件服务即提供储存)
用户 client 这边,如果设计良好,可以非常方便的实现多平台(甚至智能手机平台,方便分享照片等)。甚至 client 也可以开源,让用户用的放心,并鼓励第三方应用。
在构思的时候,我也想过在 client 中提供 p2p 功能,实现起来也很容易。但后来觉得这个功能虽有一定价值,但会破坏整个产品的纯粹性。
Comments
Posted by: v | (42) November 4, 2011 08:56 PM
Posted by: Wuvist | (41) March 23, 2011 03:09 AM
Posted by: liu | (40) March 14, 2011 10:07 PM
Posted by: Anonymous | (39) March 14, 2011 05:43 PM
Posted by: jack | (38) March 10, 2011 11:15 AM
Posted by: Cloud | (37) March 8, 2011 02:37 PM
Posted by: David | (36) March 8, 2011 02:08 PM
Posted by: chinetman | (35) March 7, 2011 07:08 PM
Posted by: Anonymous | (34) March 7, 2011 11:19 AM
Posted by: Soli | (33) March 5, 2011 04:11 PM
Posted by: Maplews | (32) March 3, 2011 12:52 PM
Posted by: 赵中 | (31) March 2, 2011 02:45 PM
Posted by: Anonymous | (30) March 2, 2011 12:01 AM
Posted by: 方君君 | (29) March 1, 2011 10:56 PM
Posted by: 懒人小何 | (28) March 1, 2011 10:30 PM
Posted by: qqeyes | (27) March 1, 2011 10:13 PM
Posted by: stufever | (26) March 1, 2011 10:07 PM
Posted by: stufever | (25) March 1, 2011 10:07 PM
Posted by: stufever | (24) March 1, 2011 10:07 PM
Posted by: dongyuwei | (23) March 1, 2011 10:03 PM
Posted by: Anonymous | (22) March 1, 2011 08:13 PM
Posted by: Anonymous | (21) March 1, 2011 07:52 PM
Posted by: 微波信号 | (20) March 1, 2011 07:36 PM
Posted by: amao | (19) March 1, 2011 07:10 PM
Posted by: Samuel | (18) March 1, 2011 07:00 PM
Posted by: Anonymous | (17) March 1, 2011 06:45 PM
Posted by: 大笨猫同学 | (16) March 1, 2011 06:32 PM
Posted by: kad | (15) March 1, 2011 05:52 PM
Posted by: kad | (14) March 1, 2011 05:40 PM
Posted by: cadmuxe | (13) March 1, 2011 05:04 PM
Posted by: AWU | (12) March 1, 2011 05:01 PM
Posted by: youngoo | (11) March 1, 2011 04:59 PM
Posted by: allen | (10) March 1, 2011 04:48 PM
Posted by: 红色警戒 | (9) March 1, 2011 04:21 PM
Posted by: 徐凡 | (8) March 1, 2011 04:13 PM
Posted by: Cloud | (7) March 1, 2011 03:33 PM
Posted by: NI | (6) March 1, 2011 03:23 PM
Posted by: Leo Jay | (5) March 1, 2011 02:58 PM
Posted by: pi1ot | (4) March 1, 2011 02:54 PM
Posted by: joe | (3) March 1, 2011 02:53 PM
Posted by: zhengkai | (2) March 1, 2011 02:47 PM
Posted by: Leo Jay | (1) March 1, 2011 02:43 PM