Tag: gzip

即使在force_encoding之后,Rails / Ruby也会在UTF-8中无效字节序列

我正在尝试在Rails中迭代一个远程nginx日志文件(压缩.gz文件),我在文件中的某个位置收到此错误: TTPArgumentError: invalid byte sequence in UTF-8 我尝试强制编码,虽然看起来编码已经是UTF8: logfile = logfile.force_encoding(“UTF-8”) 我正在使用的方法: def remote_update uri = “http://” + self.url + “/localhost.access.log.2.gz” source = open(uri) gz = Zlib::GzipReader.new(source) logfile = gz.read # prints UTF-8 print logfile.encoding.name logfile = logfile.force_encoding(“UTF-8”) # prints UTF-8 print logfile.encoding.name logfile.each_line do |line| print line[/\/someregex\/1\/(.*)\//,1] end end 真的试图理解为什么会发生这种情况(试图查看其他SO线程但没有成功)。 这有什么不对? 更新: 添加了exception的跟踪: HTTPArgumentError: […]

rails json使用gzip压缩响应

我有一个用rails编写的api,每个请求都响应一个JSON响应。 响应可能很大,所以我需要使用gzip压缩JSON响应。 想知道如何在rails控制器中执行此操作? 我添加了这条线 use Rack::Deflater 在config.ru中 我是否还应该改变呈现JSON的行? render :json => response.to_json() 另外,我如何检查响应是否是gzip格式.. ?? 我从终端做了一个curl请求,我只看到普通的普通JSON。

有没有办法从heroku提供gzip资产?

我想知道是否有办法让Rails网络服务器(瘦)服务于资产管道创建的* .gz文件。 据我所知,那些压缩级别比Rack::Deflater ,后者只适用于rackup文件中的config.middleware ,而不适用于config.middleware 。 一个不太理想的解决方案可能是更改Zlib的默认压缩级别,这是Rack::Deflater引用的。 它应该只需要gzip一次,然后它去Rack::Cache ,然后希望是CDN。 第二个不太理想的解决方案可能是Rack::Rewrite 。

如何使用Rails gzip网页输出?

压缩我的网页输出的Rails最好的插件是什么? 编辑:我托管的公司已声明他们不会安装mod_deflate 。

我在安装gem时遇到此错误:“错误:执行gem时…(Zlib :: GzipFile :: Error)”

可能重复: 错误:执行gem …(Zlib :: GzipFile :: Error)时不是gzip格式 在我的系统上安装gem时,出现以下错误: gem install blackbook –version “>= 1.0.7” –source http://github.com/tamoyal/blackbook/tree/master ERROR: While executing gem … (Zlib::GzipFile::Error) not in gzip format 有关为什么会发生这种情况的任何想法? 我构建了gem所以也许我的gem构建有问题吗? 谢谢

不是gzip格式错误

安装任何Gem或做任何gem gzip相关错误的列表如下所示: – C:\Documents and Settings\gangunra>gem install rhosync -v 2.0.0.beta7 –pre ERROR: While executing gem … (Zlib::GzipFile::Error) not in gzip format C:\Documents and Settings\gangunra>gem list rails -r *** REMOTE GEMS *** ERROR: While executing gem … (Zlib::GzipFile::Error) not in gzip format 请帮我解决这个问题

使用Zlib压缩ruby中的大文件以获取gzip

我有一个非常大的文件,约。 2亿行数据。 我想用Zlib库压缩它,特别是使用Writer。 一次读取每一行似乎需要花费相当多的时间。 有没有更好的方法来实现这一目标? 这就是我现在所拥有的: require ‘zlib’ Zlib::GzipWriter.open(‘compressed_file.gz’) do |gz| File.open(large_data_file).each do |line| gz.write line end gz.close end

Sinatra应用程序中的gzip资产

我一直在阅读使用gzip压缩您的资产将提高网站的性能。 在Sinatra应用程序中似乎有很多方法可以做到这一点,因此我希望确认最有效和最简单的方法来理解。 我遇到过 use Rack::Deflater 在运行应用程序之前应将其放在我的config.ru文件中,所以在我的情况下 require ‘./david’ use Rack::Deflater run Sinatra::Application 是吗? 是这么简单,只是添加我知道这将拉链我的所有静态资产,包括我的图像,但这些是从CDN提供,所以会有所作为? Ant帮助赞赏这个 谢谢

何处将Rack :: Deflater插入机架?

我目前有以下内容: use Rack::Rewrite use Rack::Cache, {:verbose=>true, :metastore=>”memcached://localhost:11211/rack-cache/meta”, :entitystore=>”memcached://localhost:11211/rack-cache/body”} use Rack::Rewrite use Rack::Lock use Rack::Deflater use ActionController::Failsafe use # use ActionController::Session::DalliStore, # use Rails::Rack::Metal use ActionController::ParamsParser use Rack::MethodOverride use Rack::Head use ActionController::StringCoercion use Sass::Plugin::Rack use Hassle use ActiveRecord::ConnectionAdapters::ConnectionManagement use ActiveRecord::QueryCache run ActionController::Dispatcher.new 我可能错了,但将Deflater移到顶端是没有意义的吗? 这样任何和所有流量都被gzip压缩。 谢谢您的帮助。

如何逐行读取gzip文件?

我有一个gzip文件,目前我这样读了: infile = open(“file.log.gz”) gz = Zlib::GzipReader.new(infile) output = gz.read puts result 我认为这会将文件转换为字符串,但我想逐行阅读。 我想要完成的是该文件有一些垃圾的警告消息,我想grep这些警告消息,然后将它们写入另一个文件。 但是,一些警告信息会被重复,所以我必须确保我只对它们进行一次grep。 因此逐行阅读会对我有所帮助。