我正在使用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
我在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
我正在使用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上.
谢谢!
我在处理在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)
现在我只需要找到一种方法来自动确定哪个获取分隔符.
我正在尝试使用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的新手,所以非常感谢任何帮助.
amazon-ebs ×1
amazon-ec2 ×1
file-upload ×1
iconv ×1
join ×1
kaminari ×1
nlp ×1
nltk ×1
pagination ×1
paperclip ×1
performance ×1
python ×1
ruby ×1
tmp ×1
utf-16 ×1
utf-8 ×1
xml ×1