gpt4 book ai didi

ruby - 事件机器 : How to receive file uploads?

转载 作者:数据小太阳 更新时间:2023-10-29 07:36:47 29 4
gpt4 key购买 nike

对于普通的 Ruby/Rails 应用程序来说,这有点不寻常。我正在构建一个主要在 Event Machine 之上运行的应用程序。 WEBrick 提供了一些 HTML 文件,但大多数应用程序都使用 javascript 在客户端运行,并通过 Web 套接字连接到我的 Event Machine 应用程序。我需要能够接受文件上传并将它们存储在本地。如何做到这一点?

更新:如果您有兴趣,here is a link to the source code .

最佳答案

首先是如何使用 sinatra 构建一个简单的文件上传:File upload with Sinatra

所以现在要使用 thin 运行您的 Web 服务器,您可以在您的代码中执行此操作:

class MyWebApp < Sinatra::Base
# here goes the sinatra app code
post '/something' do
# ...
end
end

EM::run do
Thin::Server.start('0.0.0.0', 8000) do
map('/'){ run MyWebApp.new }
end
end

thin 在内部使用 eventmachine,我想 webrick 使用线程,但老实说我从来没有真正研究过它。

至少在文件上传时,您应该在 ruby​​ 进程之前使用 apache 或 nginx(我认为 websockets 无法通过它工作)。如果您需要,我可以包括一个简单的 nginx 配置(只需要在我的磁盘 xD 上找到它)。

编辑:另一个解决方案是使用 goliath 作为网络服务器,这里有一个例子:https://github.com/postrank-labs/goliath/blob/master/examples/async_upload.rb如果您不需要显示上传进度,您应该继续使用 sinatra+nginx/apache。

关于ruby - 事件机器 : How to receive file uploads?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9186470/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com