小编NAD*_*NAD的帖子

为什么RackMultipart*文件持久存在于我的Rails/tmp目录中?

我正在使用Paperclip(2.3)处理在Ubuntu上运行的Rails 3.0.3应用程序上的图像上传.Paperclip正在处理上传广告,但是在应用程序的/ tmp文件夹中创建的RackMultipart*文件仍然存在 - 也就是说,它们只是累积而不是删除自己.我意识到我可以使用tmpreaper删除旧的tmpfiles,但我真的想找到一个更优雅(和可扩展)的解决方案.

我之前的问题是临时文件(即RackMultipart*文件)累积在Rails应用程序的根目录(而不是/ tmp)中.我通过在environment.rb文件中显式设置临时路径来解决这个问题,如下所示:

ENV['TMPDIR'] = Rails.root.join('tmp')
Run Code Online (Sandbox Code Playgroud)

是否需要设置另一个环境变量以确保正确处理临时文件 - 即在模型中保存后删除它们?我不确定这是Paperclip或我的Rails设置的问题.

我搜索过高低,但在这方面进展甚微.我会感激任何线索.

真诚的谢谢.

PS - 我正在使用S3进行存储.这似乎与问题无关 - 我在本地存储文件时遇到了同样的问题.

garbage-collection file-upload paperclip tmp ruby-on-rails-3

12
推荐指数
2
解决办法
8093
查看次数

我可以创建包含多个ebs卷的AMI(即sda和sdb)

我在EC2上运行了一个ebs支持的实例.我正在使用它对大约16Gb的数据进行一些计算密集型文本处理,这些数据存储在sdb上(即与实例关联的较大ebs卷).

我想通过创建此实例的副本来并行化处理,每个副本都有自己的数据副本.我可以从实例创建一个AMI,但我需要图像包含两个sda(根ebs卷)和ALSO sdb,这是所有数据所在的卷.如何制作整个包装的复制品?

在AWS管理控制台中创建映像只是复制sda(即根卷,它太小而无法容纳我的数据).

这甚至可能吗?

(PS:我甚至没有在AWS管理控制台Elastic Block Store-> Volumes面板中看到sdb卷)

谢谢!

parallel-processing amazon-ec2 amazon-ebs amazon-web-services

9
推荐指数
1
解决办法
6641
查看次数

Kaminari(或任何分页)在加入查询时很慢

我正在使用Kaminari对以下查询进行分页(尽管我使用will_paginate获得了类似的结果):

Person.joins([:locations=>:location_hour], :friends, :current_images).where(sql_conditions_string).page(params[:page]).per(10)
Run Code Online (Sandbox Code Playgroud)

一切都按预期工作,但分页添加数据库调用

SELECT COUNT(*) FROM 'people' INNER JOIN 'location_histories'...
Run Code Online (Sandbox Code Playgroud)

它在整个查询中调用count(*).这需要1.3秒,而原始查询(包括完全相同的连接和.where条件)仅需约0.5秒.

有没有办法让分页只使用原始查询中的计数?最后一次数据库调用是一个很大的性能问题.

我在Rails 3.0.7上.

谢谢!

performance pagination join will-paginate kaminari

7
推荐指数
0
解决办法
888
查看次数

Ruby 1.8 Iconv UTF-16到UTF-8失败,带有"\ 000"(Iconv :: InvalidCharacter)

我在处理在Windows机器上生成的列表数据的文本文件时遇到问题.我在Ruby 1.8工作.当从文件处理SECOND行时,以下给出错误("\ 000"(Iconv :: InvalidCharacter)).第一行正确转换.

require 'iconv'
conv = Iconv.new("UTF-8//IGNORE","UTF-16")
infile = File.open(tabfile, "r")
while (line = infile.gets)
  line = conv.iconv(line.strip)  # FAILS HERE
  puts line
  # DO MORE STUFF HERE
end
Run Code Online (Sandbox Code Playgroud)

奇怪的是,它读取并转换文件中的第一行没有问题.我在Iconv构造函数中有// IGNORE标志 - 我认为这应该可以抑制这种错误.

我已经进入了一段时间.任何建议都将受到高度赞赏.

谢谢!

编辑:hobbs解决方案修复此问题.谢谢.只需将代码更改为:

require 'iconv'
conv = Iconv.new("UTF-8//IGNORE","UTF-16")
infile = File.open(tabfile, "r")
while (line = infile.gets("\x0a\x00"))
  line = conv.iconv(line.strip)  # NO LONGER FAILS HERE
  # DOES MORE STUFF HERE
end
Run Code Online (Sandbox Code Playgroud)

现在我只需要找到一种方法来自动确定哪个获取分隔符.

ruby utf-8 utf-16 character-encoding iconv

3
推荐指数
1
解决办法
2483
查看次数

NLTK的XMLCorpusReader可用于多文件语料库吗?

我正在尝试使用NLTK在New York Times Annotated Corpus上做一些工作,其中包含每篇文章的XML文件(新闻行业文本格式NITF).

我可以解析单个文档,没有问题,如下:

from nltk.corpus.reader import XMLCorpusReader
reader = XMLCorpusReader('nltk_data/corpora/nytimes/1987/01/01', r'0000000.xml')
Run Code Online (Sandbox Code Playgroud)

我需要在整个语料库上工作.我试过这样做:

reader = XMLCorpusReader('corpora/nytimes', r'.*')
Run Code Online (Sandbox Code Playgroud)

但这不会创建一个可用的读者对象.例如

len(reader.words())
Run Code Online (Sandbox Code Playgroud)

回报

raise TypeError('Expected a single file identifier string')
TypeError: Expected a single file identifier string
Run Code Online (Sandbox Code Playgroud)

如何将此语料库读入NLTK?

我是NLTK的新手,所以非常感谢任何帮助.

python xml nlp nltk

3
推荐指数
1
解决办法
2973
查看次数