标签: paperclip

将Prawn PDF保存为Paperclip附件?

我正在使用Prawn和Prawnto向用户显示基于PDF的报告,但在某些情况下,我还想将PDF保存为我的某个模型的附件.我正在使用Paperclip来处理我的所有附件.有没有人对如何做到这一点有任何建议?

谢谢!

ruby-on-rails prawn paperclip prawnto ruby-on-rails-3

22
推荐指数
2
解决办法
8444
查看次数

Heroku + Paperclip + Amazon S3 - 定价?

由于Heroku是一个只读文件系统,我不能使用paperclip在服务器上存储少量文件.数据库映像存储是一个选项,但不是特别理想,因为这可能会使我的客户端的数据库大小从几百KB增加到超过5 MB的"免费"共享数据库限制(取决于映像的大小).

这使得Amazon S3成为可能的解决方案.我知道Heroku是在EC2上托管的(我相信?).在提到S3-EC2文件传输时,亚马逊的定价措辞有点令人困惑.如果我让我的客户端设置了一个S3帐户并让他们进行文件传输,那么定价会是什么样的?

从S3的角度来看,在rails控制器中上传和下载数据是否更便宜,然后使用send_file将数据提供给浏览器?或者直接链接到浏览器中的图像或pdf更正常吗?

因为heroku在亚马逊上托管,我的客户是否必须支付任何费用?我正在寻找与此相关的其他问题,但没有任何关于文件传输的哪些部分将被收取的真正直接答案.

我想存储会花费一点(几乎没有),但带宽怎么样?谢谢 :)

ruby-on-rails heroku amazon-s3 paperclip

21
推荐指数
1
解决办法
6841
查看次数

Rails缺少图像

我目前正在使用paperclip将图像上传到我的rails应用程序.这可能是一个非常简单的修复,但我如何或在何处保存丢失的图像?这是由于没有任何丢失图像而产生的错误.我该如何改变?

ActionController::RoutingError (No route matches "/photos/normal/missing.png"):
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails paperclip

20
推荐指数
1
解决办法
1万
查看次数

Rails Paperclip如何使用ImageMagick的过滤器选项?

我最近使用Rails实现了Paperclip,并希望尝试使用ImageMagick中的一些滤镜选项,例如模糊.我无法找到任何如何做到这一点的例子.是否通过了:样式作为另一种选择?

:styles => { :medium => "300x300#", :thumb => "100x100#" }
Run Code Online (Sandbox Code Playgroud)

@plang的答案是正确的,但我想给出模糊的确切解决方案,以防万一有人在寻找并发现这个问题:

:convert_options => { :all => "-blur 0x8" }
// -blur  {radius}x{sigma} 
Run Code Online (Sandbox Code Playgroud)

这改变了这个:
替代文字

对此:
替代文字

ruby-on-rails imagemagick paperclip

20
推荐指数
1
解决办法
5804
查看次数

回形针回调或简单的处理器?

我想运行回调after_post_process但它似乎不适用于使用Paperclip 2.3.8的Rails 3.0.1.它给出了一个错误:

undefined method `_post_process_callbacks' for #<Class:0x102d55ea0>
Run Code Online (Sandbox Code Playgroud)

我想在文件上传后调用Panda API.我会为此创建自己的处理器,但是当Panda处理处理时,它也可以上传文件,并将自己排队一段不确定的持续时间我认为回调会很好.但回调似乎在Rails3中不起作用.

after_post_process :panda_create

    def panda_create
      video = Panda::Video.create(:source_url => mp3.url.gsub(/[?]\d*/,''), :profiles => "f4475446032025d7216226ad8987f8e9", :path_format => "blah/1234")
    end
Run Code Online (Sandbox Code Playgroud)

我在我的模型中试过要求并包含回形针,但似乎并不重要.

有任何想法吗?

ruby-on-rails callback amazon-s3 paperclip ruby-on-rails-3

20
推荐指数
2
解决办法
5231
查看次数

本地存储图像用于开发s3用于生产Rails Paperclip

我想在我的本地计算机上上传图像以进行开发,但是将它们存储在我的Amazon S3帐户上以进行生产.

upload.rb

if Rails.env.development?
  has_attached_file :photo, :styles => { :thumb => '40x40#', :medium => '150x200>', :large => '300x300>'},
                            :convert_options => { :thumb => "-quality 92", :medium => "-quality 92", :large => "-quality 92"  },
                            :processors => [:cropper]
else
  has_attached_file :photo, :styles => { :thumb => '40x40#', :medium => '150x200>', :large => '300x300>'},
                            :convert_options => { :thumb => "-quality 92", :medium => "-quality 92", :large => "-quality 92"  },
                            :storage => :s3,
                            :s3_credentials => "#{RAILS_ROOT}/config/s3.yml",
                            :path => ":attachment/:id/:style.:extension",
                            :bucket => …
Run Code Online (Sandbox Code Playgroud)

paperclip ruby-on-rails-3

20
推荐指数
2
解决办法
7871
查看次数

更智能的回形针验证

我在rails应用程序中使用paperclip,并在我的模型中进行以下三种验证

validates_attachment_presence :photo                    
validates_attachment_size :photo, :less_than=>1.megabyte
validates_attachment_content_type :photo, :content_type=>['image/jpeg', 'image/png', 'image/gif'] 
Run Code Online (Sandbox Code Playgroud)

如果用户忘记添加附件,则所有三个验证都会失败,因此会向用户显示以下三个错误:

# Photo file name must be set.
# Photo file size file size must be between 0 and 1048576 bytes.
# Photo content type is not included in the list
Run Code Online (Sandbox Code Playgroud)

我认为最好只显示此实例中的第一个错误,因为其他两个错误纯粹是后果...我希望用户只看到后两个错误,如果已添加附件但不符合验证标准.

我确定没有预先出现的验证可以做这种事情,并且通过阅读vendor/plugins/paperclip/lib/paperclip.rb中的代码,我看到validates_attachment_size方法支持:unless参数如下所示:

def validates_attachment_presence name, options = {}
  message = options[:message] || "must be set."
  validates_presence_of :"#{name}_file_name", 
                        :message => message,
                        :if      => options[:if],
                        :unless  => options[:unless]
end
Run Code Online (Sandbox Code Playgroud)

所以,我在想我可以做以下事情:

validates_attachment_size :photo, :less_than=>1.megabyte, :unless=> :photo.blank
Run Code Online (Sandbox Code Playgroud)

但这打破了应用程序.有没有经验做过这种事情?对回形针源代码有很好的贡献.

编辑:

我试过用这个:

validates_attachment_size :photo, …
Run Code Online (Sandbox Code Playgroud)

validation model ruby-on-rails paperclip

19
推荐指数
2
解决办法
2万
查看次数

如何使用Paperclip复制文件

有没有人知道用Paperclip使用S3存储复制文件的方法?在我尝试自己编写之前,我只是想确保没有办法做到这一点.谢谢

ruby-on-rails copying paperclip

19
推荐指数
1
解决办法
5606
查看次数

Heroku:使用回形针运行imagemagick

我在我的mac os x计算机上安装了image magick,现在我想将它部署到heroku.我在heroku上安装了paperclip插件,但上传图片时出现此错误:

Paperclip::CommandNotFoundError
Run Code Online (Sandbox Code Playgroud)

之前我在计算机上没有imagemagick instaledl时出现此错误,但现在我想部署它,如何让图像magick在heroku上工作?

ruby ruby-on-rails imagemagick heroku paperclip

19
推荐指数
2
解决办法
2万
查看次数

使用Paperclip将小文件上传到s3挂起,CPU使用率为100%

我在AWS EC2大型实例上有一个<20MB pdf文件的目录(每个pdf代表一个广告).我正在尝试使用ruby和DM-Paperclip将每个pdf文件上传到S3.

大多数文件上传成功,但有些文件似乎需要数小时才能将CPU挂起100%.我通过在相关部分中打印调试语句找到了导致问题的代码行.

 # Takes an array of pdf file paths and uploads each to S3 using dm-paperclip
 def save_pdfs(pdfs_files)
  pdf_files.each do |path|
  pdf = File.open(path)
  ad = Ad.new
  ad.pdf.assign(pdf) # <= Last debug statment is printed before this line
  begin
    ad.save
  rescue => e
    # log error
  ensure
    pdf.close
  end
 end
Run Code Online (Sandbox Code Playgroud)

为了帮助解决问题,我将过程固定在100%的过程中.结果是数十万行像这样:

 ...
 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=3543, ...}) = 0
 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=3543, ...}) = 0
 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=3543, ...}) = 0
 ... 500K lines
Run Code Online (Sandbox Code Playgroud)

接下来几千:

 ...
 brk(0x1224d0000)                        = …
Run Code Online (Sandbox Code Playgroud)

cpu upload amazon-s3 paperclip

19
推荐指数
1
解决办法
558
查看次数