2017-01-29 7 views
0

Я не могу заставить AWS-S3 работать с моим Ruby-приложением как в производстве, так и в разработке. Я могу загрузить файлы в свой S3 Bucket, но как их отобразить? Я использую это для аватаров профиля пользователя, чтобы пользователи могли загружать свой собственный аватар.Показать изображения AWS S3 на Ruby-приложении с Paperclip

здесь мой текущий тег изображения:

<%= image_tag @user.profile.avatar.url, class: 'user-show-avatar' %> 

Я место мой аватар загрузить данные в модели профилей, которая является, где у меня есть информация аватара.

profile.rb

class Profile < ActiveRecord::Base 
    belongs_to :user 
    has_attached_file :avatar, 
        :styles => { :medium => "460x>", :thumb => "100x100>",:vnice=> "400x" }, 
        :storage => :s3, 
        :bucket => 'mybucket', 
        :s3_credentials => "#{Rails.root}/config/aws.yml", 
        :path => "resources/:id/:style/:basename.:extension" 

    validates_attachment_content_type :avatar, content_type: /\Aimage\/.*\Z/ 

end 

_form.html.erb (профиль форма редактирования)

<%= form_for @profile, url: user_profile_path, :html => { :multipart => true } do |f| %> 
     <div class="form-group"> 
      <%= f.label :avatar %> 
      <%= f.file_field :avatar, class: 'form-control' %> 
     </div> 
<% end %> 

конфигурации/инициализатор/paperclip.rb

Paperclip::Attachment.default_options[:storage] = :s3 

Paperclip::Attachment.default_options[:s3_credentials] = { 
    :bucket => ENV['AWS_BUCKET'], 
    :access_key_id => ENV['AWS_KEY'], 
    :secret_access_key => ENV['AWS_SECRET_KEY'], 
    s3_region: 'us-east-1' 
} 

Paperclip::Attachment.default_options[:s3_options] = { 
    endpoint: 'https://objects-us-east-1.io' 
} 

Paperclip::Attachment.default_options[:url] = ':s3_domain_url' 
Paperclip::Attachment.default_options[:path] = '/:class/:attachment/:id_partition/:style/:filename' 
Paperclip::Attachment.default_options[:s3_host_name] = 'objects-us-east-1' 
Paperclip::Attachment.default_options[:s3_protocol] = 'https' 

Что я делаю неправильно ? Каков правильный способ отображения изображений в Ruby, с S3 с помощью paperclip?

ответ

0

Решено.

Удалено инициализатор paperclip.rb и добавлено: url => ': s3_domain_url' в мою модель профиля

Смежные вопросы