我正在一个Rails应用程序中使用Paperclip 2.3.5来在Amazon S3上存储PDF文档。通过ImageMagick生成每个PDF的JPG缩略图。我在模型中使用了以下配置:
has_attached_file :file,
:styles => { :thumb => { :geometry => "200x200>",
:format => :jpg
} },
:whiny => false,
:storage => :s3,
:s3_credentials => "#{RAILS_ROOT}/config/s3.yml",
:s3_permissions => 'authenticated-read',
:s3_headers => { 'Expires' => 1.year.from_now.httpdate },
:url => "s3.amazonaws.com",
:path => "documents/:id/:style/:basename.:extension",
:bucket => 'mybucket'
但是存在一个问题:生成的缩略图上传到S3时,使用的content_type为"application/pdf",这是错误的,因为它是一个JPG文件(您可以通过类似Cyberduck的S3资源管理工具查看S3上文件的content_type)。对于原始的PDF文件,此content_type是正确的,但对于缩略图则不然。这会导致某些浏览器(如Chrome或Safari)无法内联显示缩略图。
注意:存储在我的数据库中的content_type(字段“file_content_type”)仍然是“application/pdf”,这仍然是正确的,因为它是原始文件的content_type。
如果缩略图的content_type应与原始文件不同,我该如何覆盖它?