Rails 3、Paperclip(3.3.0)、aws-sdk(1.7.1)を使用しています。
私のペーパークリップの添付ファイルはS3に安全に保管されています。
attachment.rb
has_attached_file :attachment,
:storage => :s3,
:s3_credentials => "#{Rails.root}/config/s3.yml",
:s3_protocol => 'https',
:s3_permissions => :private, # Sets the file, not the folder as private in S3
:use_timestamp => false,
:default_style => :original, # NEEDS to be original or download_url method below wont work
:default_url => '/images/:attachment/default_:style.png',
:path => "/:rails_env/private/s/:s_id/uuploaded_files/:basename.:extension"
ファイルをダウンロードするために、次のような安全なURLを生成します。
def authenticated_url(style = nil, expires_in = 1.hour)
mime_type = MIME::Types.type_for(self.attachment_file_name)[0]
attachment.s3_object(style).url_for(:read, :secure => true, :response_content_type => mime_type.to_s, :expires => expires_in).to_s
end
問題はPSDの場合です:これは空になります:
Rails MIME::Types.type_for('photoshop_1354320001.psd')
コードでは、次のようになります。
mime_type = MIME::Types.type_for(self.attachment_file_name)[0]
他のファイルでは問題なく機能しますが、PSDでは機能しません。なぜ、どのように解決するのか、何か考えはありますか?
ありがとう