标签: paperclip

RoR:无法将回形针连接到Amazon S3

我决定将我的应用程序部署到Heroku,我正在关注他们的教程.但是,我现在尝试使用回形针插件连接到我的Amazon S3存储桶,我收到此错误:

Images#index中的ArgumentError

显示第19行引发的app/views/images/index.html.erb:

第0行,第39栏的语法错误:`bucket:(MY BUCKET HERE)
access_key_id :(我的访问密钥ID在这里)
secret_access_key :(我的秘密访问密钥在这里)
'
提取的来源(第19行附近):

16:<%= H image.created_at%>
17:<%= H image.updated_at%>
18:
19:<%如果image.img.exists?然后%>
20:

<%= image_tag image.img.url(:thumb)%>


21:<%else%>
22:

没有附上照片,上传一张.

RAILS_ROOT:C:/ Users/Mariusz/Sites/wiw_development

应用程序跟踪| 框架跟踪| 完整跟踪
C:/Ruby/lib/ruby/1.8/yaml.rb:133:在加载' C:/Users/Mariusz/Sites/wiw_development/vendor/plugins/paperclip/lib/paperclip/storage.rb:236:in parse_credentials'C :/Users/Mariusz/Sites/wiw_development/vendor/plugins/paperclip/lib/paperclip/storage.rb:138:in instance_eval'C :/ Users/Mariusz/Sites/wiw_development/vendor/plugins/paperclip/lib /paperclip/storage.rb:137:in 延伸' C:/Users/Mariusz/Sites/wiw_development/vendor/plugins/paperclip/lib/paperclip/attachment.rb:269:在初始化' C:/用户/马里乌什/站点/wiw_development/vendor/plugins/paperclip/lib/paperclip.rb:326:in attachment_for'load'
C:/Ruby/lib/ruby/1.8/yaml.rb:133:in

find_credentials'
C:/Users/Mariusz/Sites/wiw_development/vendor/plugins/paperclip/lib/paperclip/storage.rb:176:in

extended'
C:/Users/Mariusz/Sites/wiw_development/vendor/plugins/paperclip/lib/paperclip/storage.rb:137:in

extended'
C:/Users/Mariusz/Sites/wiw_development/vendor/plugins/paperclip/lib/paperclip/attachment.rb:269:in

initialize_storage'
C:/Users/Mariusz/Sites/wiw_development/vendor/plugins/paperclip/lib/paperclip/attachment.rb:51:in

new'
C:/Users/Mariusz/Sites/wiw_development/vendor/plugins/paperclip/lib/paperclip.rb:326:in

C:/Users/Mariusz/Sites/wiw_development/vendor/plugins/paperclip/lib/paperclip.rb:229:in _run_erb_app47views47images47index46html46erb'C :/Users/Mariusz/Sites/wiw_development/app/views/images/index.html.erb :12:在_run_erb_app47views47images47index46html46erb'C :/Users/Mariusz/Sites/wiw_development/app/controllers/images_controller.rb:7:在'index'中 img'
C:/Users/Mariusz/Sites/wiw_development/app/views/images/index.html.erb:19:in

each'
C:/Users/Mariusz/Sites/wiw_development/app/views/images/index.html.erb:12:in

我的文件看起来像这样:

1)app/models/image.rb

class Image <ActiveRecord :: Base
has_and_belongs_to_many:pairs
validates_presence_of:img_file_name
has_attached_file:img,:styles => {:thumb =>"100x100#",:page =>"400x320>"} …

amazon ruby-on-rails amazon-s3 paperclip ruby-on-rails-plugins

0
推荐指数
1
解决办法
1314
查看次数

在rails 3中弃用了after_save解决方案

嗨我在rails 3中创建一个应用程序我正在使用paperclip,其中我想调用一个回形针函数来生成图像的缩略图但是当我调用after_save方法时它会给出错误

弃用警告:不推荐使用Base#after_save,请改用Base.after_save:方法.(来自app/models/asset.rb:23)

ruby-on-rails paperclip after-save ruby-on-rails-3

0
推荐指数
1
解决办法
2915
查看次数

在回形针上保存图像时缺少扩展名

 image = PortfolioFileItem.find(107)  
 img_source = "http://s3.amazonaws.com/test/portfolio_file_items_final/original/1.jpg"
 image.picture_from_url(img_source)
 image.save(false)
Run Code Online (Sandbox Code Playgroud)

图像保存完成但缺少图像扩展名.这是保存的示例图像名称:open-uri20110528-6779-fpiust-0.

请帮我解决问题.谢谢

ruby-on-rails paperclip

0
推荐指数
1
解决办法
2111
查看次数

Errno :: ETIMEDOUT:连接超时 - 连接(2)

在生产中,我偶尔会收到以下错误:

Errno::ETIMEDOUT: Connection timed out - connect(2)
Run Code Online (Sandbox Code Playgroud)

当我使用包含由paperclip/aws-sdk上传到s3的图像的prawn gem生成PDF时,似乎只会发生这种情况.这可能每周只发生几次,每天使用数百次(没有问题),但是当它失败时会导致500错误.

跟踪是:

/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/net/http.rb:560:in
`initialize'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/net/http.rb:560:in
`open'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/net/http.rb:560:in
`connect'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/timeout.rb:53:in
`timeout'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/timeout.rb:101:in
`timeout'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/net/http.rb:560:in
`connect'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/net/http.rb:553:in
`do_start'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/net/http.rb:542:in
`start'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/open-uri.rb:242:in
`open_http'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/open-uri.rb:616:in
`buffer_open'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/open-uri.rb:164:in
`open_loop'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/open-uri.rb:162:in
`catch'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/open-uri.rb:162:in
`open_loop'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/open-uri.rb:132:in
`open_uri'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/open-uri.rb:518:in
`open'
/opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/1.8/open-uri.rb:30:in
`open'
....rb:57:in `render_image_to_pdf'
Run Code Online (Sandbox Code Playgroud)

第57行:

pdf.image open(image.expiring_url(30.minutes, :full)), :width => 300, :position => 20
Run Code Online (Sandbox Code Playgroud)

建立:

Rails 3.0.10
Ruby 1.8.7EE
Prawn  0.11.1
AWS-SDK 1.3.3
Paperclip 2.5.2
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能防止此错误?

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

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

Backbone.js视图中的Paperclip image.url

我正在使用回形针来保存图像.一切正常,我可以使用@ item.image.url访问该项目的网址.

class Item
 has_attached_file :image, :styles => {
      :original => ['1920x1680>', :jpg],
      :small => ['100x100>', :jpg],
      :medium => ['250x250>', :jpg],
      :large => ['500x500>', :jpg]
    }
end
Run Code Online (Sandbox Code Playgroud)

这是控制台:

> Item.last.image.url(:small)
=> "/system/images/items/1/small/chanel.jpg?1334005208" 
Run Code Online (Sandbox Code Playgroud)

如果我从服务器模板化HAML或ERB并像这样向用户提供页面,这是简单易行的.项目/ show.html.haml:

.item
  .item-image
    = image_tag @item.image.url(:small)
Run Code Online (Sandbox Code Playgroud)

但是,使用backbone.js,我无法构造URL,因为我在上下文中没有回形针助手.基本上,我将图像的以下属性以json形式发送到页面.

#<Item:0x007fc97559b960> {
                    :id => 1,
    :image_content_type => "image/jpeg",
       :image_file_name => "chanel.jpg",
       :image_file_size => 28880,
      :image_updated_at => 2012-04-09 21:00:08 UTC
}
Run Code Online (Sandbox Code Playgroud)

什么是忍者的方式来将image.url作为项目的属性包含在内.我如何考虑样式URLS?有一个像"image_small_url","image_normal_url"等属性预定和可访问的将是很好的.思考?

ruby-on-rails paperclip backbone.js ruby-on-rails-3 ruby-on-rails-3.1

0
推荐指数
1
解决办法
1617
查看次数

回形针 s3_host_alias 不起作用

我正在尝试在 s3_host_alias 中使用 Cloudfront CNAME,但不起作用。

配置/s3_config.yml

development:
  url: ":s3_host_alias"
  s3_host_alias: dev-cdn.mysite.com
production:
  url: ":s3_host_alias"
  s3_host_alias: cdn.mysite.com
Run Code Online (Sandbox Code Playgroud)

模型/配置文件.rb

def self.s3_config
    @@s3_config ||= YAML.load(ERB.new(File.read("#{Rails.root}/config/s3_config.yml")).result)[Rails.env]
end

has_attached_file :avatar, :storage => :s3, :s3_credentials => "#{Rails.root}/config/s3.yml", :url => self.s3_config['url'], :s3_host_alias => self.s3_config['s3_host_alias'], :styles => { :medium => "300x300>", :circle => "130x130#", :thumb => "50x50>" }, :default_url => "avatar/missing.jpg", :path => ":class/:id/:attachment/:style/:hash.:extension", :url => ":class/:id/:attachment/:style/:hash.:extension", :hash_secret => "***"
Run Code Online (Sandbox Code Playgroud)

在模型中直接使用 CNAME 尝试了代码,但也不起作用。

has_attached_file :avatar, :storage => :s3, :s3_credentials => "#{Rails.root}/config/s3.yml", :url => ":s3_host_alias", :s3_host_alias => "dev-cdn.mysite.com", :styles …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails amazon-s3 paperclip amazon-cloudfront

0
推荐指数
1
解决办法
1949
查看次数

Rails - Dokku - Paperclip:每次推送到生产中断(404s)用户上传的图像

使用Dokku在Digital Ocean上运行Rails 4应用程序.用户可以通过回形针上传图像.我可以上传图像,应用程序运行良好并显示所有图像.一旦我做了一个像文本更改的小改动,我运行$ git push dokku master,所有上传的图像404.

模型:

class ProductImage < ActiveRecord::Base
  has_attached_file :image, default_url: "/images/:style/missing.png", 
  :path =>":rails_root/public/system/:attachment/:id/:basename_:style.:extension",
  :url =>"/system/:attachment/:id/:basename_:style.:extension",
  styles: { thumb: ["64x64#", :jpg], medium: ['200x200>', :jpg], 
    large: ['400x400>', :jpg] }
  validates_attachment_content_type :image, content_type: /\Aimage\/.*\Z/

  belongs_to :product
end
Run Code Online (Sandbox Code Playgroud)

我有rails_12factor gem.这是配置文件:

Rails.application.configure do
  config.cache_classes = true
  config.eager_load = true
  config.consider_all_requests_local       = false
  config.action_controller.perform_caching = true
  config.serve_static_files = ENV['RAILS_SERVE_STATIC_FILES'].present?
  config.assets.js_compressor = :uglifier
  config.assets.compile = true
  config.assets.digest = true
  config.log_level = :debug
  config.i18n.fallbacks = true
  config.active_support.deprecation = :notify
  config.log_formatter = …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails paperclip dokku

0
推荐指数
1
解决办法
495
查看次数

查找子资源的总附件存储使用情况 - Paperclip Rails

我的建筑内,所有型号的Rails应用程序Users,Album(如相册)和Photo嵌套的顺序.我希望能够找到用户相册使用的总存储空间.

Album关卡中,我可以找到该相册中照片使用的总存储空间.即:

album = Album.first

album.photos.sum(:image_file_size)
Run Code Online (Sandbox Code Playgroud)

但是,我希望能够从User所有专辑的照片水平上做到这一点.

这样做有一种优雅的方式吗?

谢谢!

sum ruby-on-rails paperclip nested-resources rails-activerecord

0
推荐指数
1
解决办法
39
查看次数

Paperclip 缺少 Amazon S3 协议 (https)

在生产中.rb:

config.paperclip_defaults = {
    s3_host_name: "s3.#{ENV.fetch('AWS_REGION')}.amazonaws.com",
    storage: :s3,
    s3_credentials: {
        bucket: ENV.fetch('S3_BUCKET_NAME'),
        access_key_id: ENV.fetch('AWS_ACCESS_KEY_ID'),
        secret_access_key: ENV.fetch('AWS_SECRET_ACCESS_KEY'),
        s3_region: ENV.fetch('AWS_REGION'),
    }
}
Run Code Online (Sandbox Code Playgroud)

我的初始化程序/paperclip.rb 中没有任何内容。

在我的模型中:

class MyModel < ApplicationRecord
  has_attached_file :photo, styles: {
      thumb: '100x100>',
      square: '200x200#',
      medium: '300x300>'
  }
  validates_attachment_content_type :photo, content_type: /\Aimage\/.*\Z/
  def photo_url=(url)
    self.photo = URI.parse(url)
  end
end
Run Code Online (Sandbox Code Playgroud)

然后我测试一下:

m = Model.new
m.photo_url = "https://s3.us-east-2.amazonaws.com/mybucket/sports-grill-miami.jpg"
m.save!
m.photo.url(:thumb)
"//s3.us-east-2.amazonaws.com/mybucket/buckets/photos/000/000/005/thumb/sports-grill-miami.jpg?1495237443" 
Run Code Online (Sandbox Code Playgroud)

为什么缺少 HTTPS 协议?这导致我的 Android 应用程序崩溃,因为它需要一个协议来连接到 URL。我是否需要对 URL 进行硬编码,或者 Paperclip 可以处理这个问题吗?

ruby-on-rails paperclip

0
推荐指数
1
解决办法
1352
查看次数

由于重复,使用Paperclip on Rails 3保存Facebook图像时出现问题

我在Rails 3应用程序中使用带有Omniauth(带有Facebook)的paperclip gem.所有个人资料照片都保存到Amazon S3.

现在我遇到的问题是许多图像被保存为stringio.txt,导致重复的图像.这意味着,我的一些用户拥有不属于他们自己的个人资料图片.

当图像本身超过10kb时,似乎也会出现这些图像.

到目前为止,我已尝试直接使用保存 open-uri

self.avatar = open(omniauth['user_info']['image'].sub("square","large"))

facebook ruby-on-rails paperclip ruby-on-rails-3

-1
推荐指数
1
解决办法
2046
查看次数