Tag:

如何强制send_data在浏览器中下载文件?

我的问题是我在我的Rails 3应用程序上使用send_data向用户发送一个来自AWS S3服务的文件 Base.establish_connection!( :access_key_id => ‘my_key’, :secret_access_key => ‘my_super_secret_key’) s3File = S3Object.find dir+filename, “my_unique_bucket” send_data(open(s3File.url).read,:filename=>filename, :disposition => ‘attachment’) 但似乎浏览器正在缓冲文件,并且在缓冲之前将文件下载发送到下载,不需要时间下载,但在buffering时它只需要文件大小….但我需要的是用户查看正常下载过程中,他们只会在浏览器选项卡上知道加载器发生了什么: 他们宁愿看到一个下载过程,我想要弄清楚那里发生了什么 有没有办法用send_data做到这send_data ?

将video上传,编码和流媒体function添加到我的Rails应用程序的最佳方式?

将video上传,编码和流媒体function添加到我的Rails应用程序的最佳方法是什么? 我正在考虑混合:Rails app + Video Online Encoder + Amazon S3。 你怎么看 ? 对于video在线编码器(VOE),哪一个更容易使用Rails:heywatch,panvidea,encoding.com,pandastream,…? 顺便说一下,该应用程序将允许用户在运行时添加动态文本,模式和声音来播放流式video。 有一个例子: 在rails应用程序(后台或前台):video上传(.mov,.avi,…) VOE:FLV格式的video编码+ Amazon S3中的存储 在rails app,backoffice:在自制的Flash应用程序中,“添加”到video中,例如1分钟后显示的文本和模式(存储在Rails应用程序DB中的信息)。 在rails应用程序中,前台:在自制的Flash播放器中播放来自Amazon S3(+ Cloudfront)的流式video,在播放1分钟后动态显示video上的文本和架构。 我真正不理解的部分是FLVvideo流。 我以为Cloudfront可以做到这一点。 我希望我足够清楚;-) 谢谢大家的答案 !

Sinatra 1.3 Streaming w / Ruby stdout重定向

我想使用1.3中引入的Sinatra的Streamingfunction以及一些stdout重定向。 它基本上是一个长期工作的实时流输出。 我在自述文件中查看了这个问题和Sinatra流式传输示例。 在OSX上运行1.8.7: require ‘stringio’ require ‘sinatra’ $stdout.sync = true module Kernel def capture_stdout out = StringIO.new $stdout = out yield out ensure $stdout = STDOUT end end get ‘/’ do stream do |out| out << "Part one of a three part series… \n” sleep 1 out << "…part two… \n” sleep 1 out […]

使用metasploit进行音频流传输

我想在metasploit中创建麦克风音频流,比如webcam_stream,所以我在ruby脚本中添加了一些代码: (/ usr / share / metasploit-framework / lib / rex / post / meterpreter / ui / console / command_dispatcher / stdapi / webcam.rb ),添加的代码是: def cmd_mic_stream(*args) print_status(“Starting…”) stream_path = Rex::Text.rand_text_alpha(8) + “.wav” player_path = Rex::Text.rand_text_alpha(8) + “.html” duration = 2 view = true timeout = 1800 record_mic_opts = Rex::Parser::Arguments.new( “-h” => [ false, […]

如何让ActionController :: Live流与Thin一起使用?

题 你可以使用ActionController::Live thin实现服务器端事件(SSE)和长轮询吗? 如果是这样,怎么样? 上下文 虽然标题是如何获取Rails 4 ActionController :: Live流与Thin和Ruby 2一起使用的重复? Thin和Puma如何通过直播流扩展? OP通过提出两个问题来混淆水域,这个问题从来没有得到解答。 许多其他post建议你可以使用thin服务器端事件(sse),如果你通过exec thin start –threaded启动它exec thin start –threaded : Heroku是否支持ActionController :: Live? 和puma只有multithreading导轨4 http服务器? ,Aaron的开创性的http://tenderlovemaking.com/2012/07/30/is-it-live.html和Ryan的常年可靠的http://railscasts.com/episodes/401-actioncontroller-live?view=asciicast 。 但即使我正在复制Railscast示例,我还是无法让它与thin一起工作。 我试过的 # —————————————————————- # file: config/routes.rb Rails.application.routes.draw do resources :widgets do collection do get ‘events’ # SSE test end end end _ # —————————————————————- # file: […]

Ruby流tar / gz

基本上我想将数据从内存流式传输到tar / gz格式(可能是多个文件到tar中,但它永远不应该触及HARDDRIVE,只能流式传输!),然后将它们传输到其他地方(在我的情况下是一个HTTP请求体)。 有人知道现有的库可以做到这一点吗? Rails中有什么东西吗? libarchive-ruby只是一个C包装器,看起来它非常依赖于平台(文档希望你编译为安装步骤?!)。 解: require ‘zlib’ require ‘rubygems/package’ tar = StringIO.new Gem::Package::TarWriter.new(tar) { |writer| writer.add_file(“a_file.txt”, 0644) { |f| (1..1000).each { |i| f.write(“some text\n”) } } writer.add_file(“another_file.txt”, 0644) { |f| f.write(“some more text\n”) } } tar.seek(0) gz = Zlib::GzipWriter.new(File.new(‘this_is_a_tar_gz.tar.gz’, ‘wb’)) # Make sure you use ‘wb’ for binary write! gz.write(tar.read) tar.close gz.close 而已! […]

如何在Ruby中从内存中HTTP发送流数据?

我想上传我在Ruby中运行时生成的数据,比如从块中提取上传内容。 我发现的所有示例仅显示如何在请求之前流式传输必须在磁盘上的文件,但我不想缓冲文件。 滚动我自己的套接字连接除了最佳解决方案是什么? 这是一个伪代码示例: post_stream(‘127.0.0.1’, ‘/stream/’) do |body| generate_xml do |segment| body << segment end end