RAILS S3 с отображением PDF-файла, хранящегося в Amazon S3 - PullRequest
0 голосов
/ 01 декабря 2011

Как отобразить pdf файл, который хранится в s3 amazon в приложении rails ???

Ответы [ 2 ]

0 голосов
/ 01 декабря 2011

вам нужно добавить запись: s3_headers в строку has_attachment:

has_attached_file :asset,
:storage => :s3,
:s3_credentials => "#{RAILS_ROOT}/config/s3.yml",
:path => "uploads/:id/:basename.:extension",
:s3_headers => {"Content-Disposition" => "attachment"},
:s3_permissions => 'authenticated-read',
:s3_protocol => "http",
:bucket => "my_bucket_or_something"
0 голосов
/ 01 декабря 2011

при загрузке файлов на S3 имя файла должно иметь Без пробелов или специальных символов .
Для загрузки файлов с пробелами используйте следующее

yourmodel.rb

class Video < ActiveRecord::Base
  has_attached_file :video,
    :path => ":rails_root/public/system/:attachment/:id/:style/:normalized_video_file_name",
    :url => "/system/:attachment/:id/:style/:normalized_video_file_name" 

  Paperclip.interpolates :normalized_video_file_name do |attachment, style|
    attachment.instance.normalized_video_file_name
  end

  def normalized_video_file_name
    "#{self.id}-#{self.video_file_name.gsub( /[^a-zA-Z0-9_\.]/, '_')}" 
  end
end

Что мы здесь делаем? Легко, в has_attached_file мы редактируем способ, которым paperclip возвращает путь и URL по умолчанию, наиболее важные компоненты при сохранении и загрузке файла для его отображения. Значения скрепки по умолчанию:

path default => ":rails_root/public/system/:attachment/:id/:style/:filename" 
url default => "/system/:attachment/:id/:style/:filename"


Значения, начинающиеся с ’:’ - это стандартная интерполяционная скрепка
http://blog.wyeworks.com/2009/7/13/paperclip-file-rename

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...