【问题标题】:S3 Paperclip rails Can not display imageS3 回形针导轨 无法显示图像
【发布时间】:2015-01-25 07:15:26
【问题描述】:

我可以将图片上传到存储桶,但无法让它们显示在我的视图中

Article.rb

    class Article < ActiveRecord::Base
  has_attached_file :image,

  :storage => :s3, 
  :bucket => "poles",
  :s3_host_name => 's3.amazonaws.com', 
  :url =>':s3_domain_url',
  :path => '/:class/:attachment/:id_partition/:style/:filename',
  :s3_credentials => {
    :bucket => ENV['AWS_BUCKET'],
    :access_key_id => ENV['AWS_ACCESS_KEY_ID'],
    :secret_access_key => ENV['AWS_SECRET_ACCESS_KEY']
  }

  validates_attachment :image,
  :content_type => { :content_type => ["image/jpeg", "image/gif", "image/png"] }

end

观点

  <div id="thumbs">
                               <% @article.each do |article| %>

                  <div class="thumb">
                    <div class="frame"><%= image_tag article.image.url %></div>

                    <div class="thumb-content"><p><%= link_to article.title, news_path(article) %></p>Ici txt</div>
                     <div style="clear:both;"></div>
                 </div>


              <% end %>

Dev/Pro.rb

 config.paperclip_defaults = {
  :storage => :s3,
  :s3_host_name => 's3.amazonaws.com', 
  :url =>':s3_domain_url',
  :path => '/:class/:attachment/:id_partition/:style/:filename',
  :s3_credentials => {
    :bucket => ENV['AWS_BUCKET'],
    :access_key_id => ENV['AWS_ACCESS_KEY_ID'],
    :secret_access_key => ENV['AWS_SECRET_ACCESS_KEY']
    }
}

图片链接:http://poles.s3.amazonaws.com/articles/images/000/000/007/original/Ruby.png%3F1417027081 这是 S3 的错误:

   <Error><Code>NoSuchKey</Code>
<Message>The specified key does not exist.</Message>
<Key>articles/images/000/000/007/original/Ruby.png?1417027081</Key><RequestId>804A29415B8B2A8F</RequestId><HostId>BV9jm5FsvkurUvabxSkC+D3tw4Sr+++iwUPpQfB3kTBIuEFaDJeMZmbIzeB9gaHZ+iXWL7cM9us=</HostId></Error>

如果我摆脱 ?1417027081 它可以工作,但我不想在所有图片上手动执行此操作。 谢谢。

【问题讨论】:

    标签: ruby-on-rails configuration amazon-s3 paperclip


    【解决方案1】:

    您的问题与未正确转义时间戳的recent commit 有关。临时解决方法是在解决问题时禁用时间戳。

    <%= image_tag article.image.url(:original, timestamp:false) # or whatever style you're using %>
    

    或者您可以通过在您的config/initializers/paperclip.rb file 中添加以下行来全局禁用此功能。

    Paperclip::Attachment.default_options[:use_timestamp] = false
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-11
      • 1970-01-01
      • 2017-05-13
      • 1970-01-01
      • 2016-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多