【发布时间】:2012-02-15 01:47:23
【问题描述】:
这是一个理论上的问题,但是,我需要将文件共享功能添加到我的 Web 套接字驱动的聊天应用程序中。我可以使用 Amazon S3 之类的服务通过发布文件链接来上传要共享的文件,但这涉及上传可能已经可以通过本地网络访问的文件(例如在同事之间共享文件) .
所以我想到有可能通过已经存在的网络套接字连接以某种方式隧道上传/下载/传输。但是,我对 HTTP 文件传输的了解还不够,无法知道下一步如何实现它。网络套接字是否存在限制以防止这种情况发生?
我将 Ruby 和 EventMachine 用于我当前的 Web 套接字实现。如果您能够提供一个高层次的概述来帮助我入门,那将非常感激。
【问题讨论】:
-
这仍然涉及将文件上传到 Web 套接字连接的另一端(Web 服务器)和另一端从其 Web 套接字连接的另一端下载文件(再次,网络服务器)。
-
@David 是的,我想你是对的。但它仍然会避免将文件存储在服务器上(我想这可能是我想要实现的优势?)
-
实际上,我希望这样做的真正优势是,用户可以在文件实际上传之前与聊天室中的其他用户“共享文件”并且不会'直到有人真正请求文件才开始上传。例如,如果一个文件需要 30 分钟上传,聊天室在上传完成之前不会知道该文件,那么用户也必须等待该文件下载,但是,如果上传/下载同时发生它可能会增加传输文件所花费的总时间。
-
当您使用 ruby / eventmachine,并且这个示例是在服务器端使用 javascript 时,它确实展示了如何通过 websockets 发送文件。 github.com/einaros/ws/tree/master/examples/fileapi
标签: ruby http file-upload websocket eventmachine