Tag: paperclip

“identify”命令无法识别图像文件。 (Heroku的)

我正在努力让Paperclip与Heroku和Amazon S3合作。 在localhost(mac OS和Amazon)上一切正常,但是当我部署到heroku并尝试该function时,我有这个错误: 2 errors prohibited this area from being saved: Asset /tmp/paris20121005-2-2cwxgx.jpg is not recognized by the ‘identify’ command. Asset /tmp/paris20121005-2-2cwxgx.jpg is not recognized by the ‘identify’ command. 它在我的模型中删除:styles => {}选项时有效,但文件未处理(我需要不同的图像大小)。 我的gemfile中也有rmagick gem。 这是我的gemfile(只有回形针部分): gem “paperclip” gem “rmagick”, :require => ‘RMagick’ gem ‘aws-sdk’, ‘~> 1.3.4’ 我没有在我的environment.rb或production.rb中设置Paperclip.options [:command_path]所以这方面没问题。 这是我的模型: class Area { :medium => […]

将Prawn PDF保存为Paperclip附件?

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

如何使用回形针缩略图多页pdf

我想让Paperclip为上传的多页PDF文件的每个页面创建2个缩略图。 我正在运行Paperclip 2.3.1.1并在我的Asset模型中使用它: has_attached_file :asset, :styles => { :medium => “800×600>”, :thumb => “100×100>” } 所以,当我上传一个3页的pdf文件时,我希望这会每页创建2个大拇指(一个在800×600,一个小图像在100×100)。 相反,我得到了3个文件夹(拇指,中等,原始) – 原始文件夹包含origianl pdf文件,而拇指和媒体各包含一个pdf,只有pdf的第一页所有像素化。 我需要做些什么才能让回形针为pdf的每一页创建2个拇指? 理想情况下,我想像这样每页一个图像(创建6个图像): 资产/ 1 /中/文件0.png 资产/ 1 /中/文件1.png 资产/ 1 /中/文件2.png 资产/ 1 /拇指/文件0.png 资产/ 1 /拇指/文件1.png 资产/ 1 /拇指/文件2.png 有谁知道如何做到这一点? 我需要定制处理器吗? 如果是这样,处理器会是什么样子? 谢谢。

使用回形针,如何将图像位置更改为“:parent_model_id /:id”文件夹格式?

鉴于我有一个包含许多图像的清单模型,每个图像都有一个附件 ,我怎样才能将listing_id作为文件夹结构的一部分? 像这样:system / photos / [listing_id] /:id 我知道使用:id将输出图像记录的id。 这是我现在拥有的: class Image { :medium => “300×300>”, :thumb => “100×100>” }, :url => “/public/system/:class/:attachment/:id/:style_:filename” 结束

Rails3和Paperclip

我已将我的应用程序从rails 2.3迁移到rails3,我的回形针有问题。 我看到在paperclip git上有一个rails3的分支。 所以我在Gemfile中添加了“gem’paperclip’,:git =>’git://github.com/thoughtbot/paperclip.git’,: branch =>’rails3’”并启动命令bundle install。 一旦安装了回形针,上传工作正常但不是样式。 我看到了修复它的黑客攻击。 # in lib/paperclip/attachment.rb at line 293 def callback which #:nodoc: # replace this line… # instance.run_callbacks(which, @queued_for_write){|result,obj| result == false } # with this: instance.run_callbacks(which, @queued_for_write) end 之后风格还可以,但我无法激活处理器。 我的代码是: has_attached_file :image, :default_url => “/images/nopicture.jpg”, :styles => { :large => “800×600>”, :cropped => Proc.new { […]

每次推送到heroku,图像都没有显示,回形针

这是我的情况。 我正在使用paperclip让用户上传图片。 它做得很好,一切都很好。 然后,我把它推到了heroku。 对于妈妈,我可以看到用户上传的所有图片。 但是,每次进行新的提交并再次推送到heroku时,我之前的所有图像都消失了。 好像没有文件了,无法加载它。 所以,在这里我的想法是:每当我推送到heroku服务器时,本地的图像文件是否已上传到heroku服务器? 我为它研究了我的问题,我真的不明白他们对heroku的实际说法,我不知道是不是我的问题。 Heroku有一个只读文件系统。 这意味着Paperclip无法将上传的文件保存到Heroku中的任何位置。 如果您希望能够将文件上载到Heroku上托管的应用程序,则必须将文件作为二进制blob存储在数据库中,或者必须使用单独的服务来存储文件。 如果您正在寻找单独的服务,Paperclip内置支持与Amazon S3集成。 我发现亚马逊S3需要信用卡才能注册,如果我没有信用卡,那我就不能使用他们的服务了? 任何细节建议和解释都表示赞赏。谢谢

Ruby on Rails,Paperclip,Heroku,GitHub和AWS – 保护密钥

我正在使用Heroku托管的RoR,我想使用paperclip在s3上存储文件。 我的源代码托管在github上,并且具有全局可读性。 将密钥与世界其他地方保密的最佳做法是什么? Paperclip建议访问密钥存储在配置文件中(或代码中),例如我有: file:config / s3.yml access_key_id: my_access_key_id secret_access_key: my_very_secret_key bucket: bucket_name Heroku通过将代码提交给本地git然后将其推送到Heroku来工作。 因为我也在使用github,所以我也将相同的代码推送到github。 这意味着我也在那里推出了密钥。 我目前正在使用世界上可读的github帐户,所以如果我支付github,我可以解决一半的问题,但我仍然不满意代码中的配置文件中的密钥。 我不知道是否有更好的做法。 保持密钥保密并仍使用上述库和服务列表的最佳做法是什么? 顺便说一下,我上周才开始使用ror和heroku所以我可能会被认为是newbe,请体谅;)谢谢!

使用Paperclip和IAM策略将文件上载到Amazon时拒绝访问

我无法使用S3 IAM策略使用Paperclip上传。 我甚至遇到直接jQuery上传的问题(没有Paperclip)。 我的方案如下,我有一个应用程序,将有许多网站。 每个站点都有自己的桶,应该只能访问自己的桶,没有其他人的桶。 IAM示例策略文档在“示例:允许每个IAM用户访问存储桶中的文件夹”下准确说明了我想要执行的操作。 我为应用程序设置了一个IAM组,并且该组中每个站点都有一个用户。 这些IAM用户属于该组。 该小组的政策如下: { “Version”:”2012-10-17″, “Statement”:[{ “Effect”:”Allow”, “Action”:[ “s3:PutObject”, “s3:GetObject”, “s3:GetObjectVersion”, “s3:DeleteObject”, “s3:DeleteObjectVersion” ], “Resource”:”arn:aws:s3:::my-app/${aws:username}/*” } ] } 这是我在存储桶上的CORS配置,当然开发时它会被锁定: * GET POST PUT * 这是我的Paperclip设置: has_attached_file :background_image, storage: :s3, s3_credentials: { access_key_id: “xxx”, secret_access_key: “xxx” }, bucket: “my-app”, s3_permissions: “public-read”, path: “/background_images/:id/:filename” 我以前一直在使用直接在策略上的策略,它确实有效,但是当我进入具有许多“站点”的生产环境时,它不像我需要的那样灵活。 据我所知,我已完全遵循文档,但我所做的任何事情都会导致“访问被拒绝”。 此时我甚至不确定我的问题是我的IAM策略还是我的Paperclip配置。 编辑:澄清。 编辑2:最终解决方案 以下是基于本文的最终IAM策略: { […]

Paperclip + RSpec:content_typevalidation

我在我的Rails应用程序中使用Paperclip来附加images 。 我在我的模型中声明了对content_typevalidation validates_attachment :image, :content_type => { :content_type => [“image/jpg”, “image/gif”, “image/png”] } 我有两个例子,一个是有效图像,另一个是图像无效 对于无效图像,我只是将.txt文件重命名为.png it “Image is valid” do image = File.new(“#{Rails.root}/spec/support/right.png”) expect(FactoryGirl.build(:pin, image: image)).to be_valid end it “Image is invalid” do image = File.new(“#{Rails.root}/spec/support/wrong.png”) expect(FactoryGirl.build(:pin, image: image)).to have(1).errors_on(:image_content_type) end 我希望我的两个例子都能成功运行。 但是,我的第二个例子失败了。 我没有得到wrong.png content_type的任何错误。 我认为Paperclip的content_typevalidation实际上会检查上传文件的文件格式(二进制数据编码)。 但似乎在这里,它只是检查文件扩展名。 此validation仅检查上传文件的扩展名吗? 我可能在这里遗漏了一些东西(配置?)。 Paperclip中是否还有其他validation可用于实现此目的? 或者在这种情况下我应该选择自定义validation器吗?

回形针错误 – NotIdentifiedByImageMagickError

我正在尝试用回形针将图像上传到aws s3,但是我收到了这个错误 Command :: file -b –mime ‘/var/folders/d_/k4_ps9hj5fj_3df5t210vjym0000gn/T/2611a2396a4af6938e5c5867c8bb409f20140515-7787-1u773ft.jpg’ Command :: identify -format ‘%wx%h,%[exif:orientation]’ ‘/var/folders/d_/k4_ps9hj5fj_3df5t210vjym0000gn/T/2611a2396a4af6938e5c5867c8bb409f20140515-7787-1rep3kt.jpg[0]’ 2>/dev/null [paperclip] An error was received while processing: # Command :: identify -format ‘%wx%h,%[exif:orientation]’ ‘/var/folders/d_/k4_ps9hj5fj_3df5t210vjym0000gn/T/2611a2396a4af6938e5c5867c8bb409f20140515-7787-1rep3kt.jpg[0]’ 2>/dev/null [paperclip] An error was received while processing: # Command :: file -b –mime ‘/var/folders/d_/k4_ps9hj5fj_3df5t210vjym0000gn/T/2611a2396a4af6938e5c5867c8bb409f20140515-7787-kfejir.jpg’ 在我的模型中,我设置了这些样式 has_attached_file :photo, :storage => :s3, :s3_credentials => “#{Rails.root}/config/s3.yml”, :path => […]