Rails,S3,Paperclip-上传由S3记录,但不在桶中

时间:2013-05-15 16:43:02

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

我正在开发一个Rails应用,我希望人们能够将他们的照片上传到Feed中。我试图将它与S3和回形针整合在一起。现在,每当有人上传照片时,它会显示一张损坏的图像,当我检查该元素时,我会得到一个missing.png。

当然,我去检查s3水桶,看看他们是否到了那里。存储桶是空的,但每次我尝试上传照片时,日志都有一个事件。

我一直在努力解决这一问题,所以你能给我的任何帮助都会非常有帮助。这是我到目前为止的实现:

_photo.html.erb中的

    <%= image_tag @feed_item.photo.url %>
用户/ show.html.erb中的

    <%= form_for @feed_item, :html => { :multipart => true } do |form| %>
    <%= form.label :photo %>
    <%= form.file_field :photo %>
    <%= form.submit "Submit" %>
    <% end %>
config / s3.yml中的

    access_key_id: 'some_key_id',
    secret_access_key: 'some_access_key'
模型/ feed_item.rb中的

    attr_accessible :data, :feed_item_points_count, :user_id, :photo
    has_attached_file :photo
Gemfile中的

    gem 'paperclip'
    gem 'aws-sdk'

在迁移文件中

class AddPhotosToFeedItems < ActiveRecord::Migration
 def self.up
  add_attachment :feed_items, :photo
 end

 def self.down
  remove_attachment :feed_items, :photo
 end
end

谢谢!你能提供的任何帮助都很棒!

1 个答案:

答案 0 :(得分:0)

您必须将存储选项传递为:s3

eg:
has_attached_file :photo
                  :storage => :s3,
                  :server => 'mystore.amazonaws.com',
                  :bucket => BUCKET_NAME,
                  :path => "photos/:id/:styles",
                  :s3_credentials => {:access_key_id => 'ABCDEFGHIJKLM',
                                      :secret_access_key => 'ukyto8347trocq347to8764ro3'}