生产中的回形针验证问题
Paperclip validation issue on production
我在 google 云上部署我的应用程序时遇到问题,我收到此错误
has contents that are not what they are reported to be
本地运行正常!我已经尝试使用 command_path。所以我真的不知道接下来要做什么...
这是我的模型
has_mongoid_attached_file :image,
:styles => { :large => "380x380!" , :medium => "240x240", :small => "120x120!" },
:storage => :fog,
:fog_public => true,
:fog_directory => 'XXXX',
:path => "images/:id/:style/:basename.:extension",
:fog_credentials => { :provider => 'Google',
:google_storage_access_key_id => 'XXXXX',
:google_storage_secret_access_key => 'XXXXX'}
validates_attachment_content_type :image, :content_type => ["image/jpg", "image/jpeg", "image/png", "image/gif"]
感谢您的努力。希望大家帮帮我
看起来 Google 云无法确定上传文件的 MIME 类型。
您可以将文件扩展名映射到初始化程序中的类型(application.rb
、production.rb
或创建 initializers/paperclip.rb
)
Paperclip.options[:content_type_mappings] = {
:jpg => "image/jpeg",
:png => "image/png",
:gif => "image/gif"
}
但是这种方式不会对图片文件进行欺骗检查。
好的,我找到结果了。我刚刚创建了一个 initializers/paperclip.rb
文件
require 'paperclip/media_type_spoof_detector'
module Paperclip
class MediaTypeSpoofDetector
def spoofed?
false
end
end
end
现在它非常适合我。
如果您使用 Rails 在 App Engine 上遇到 ImageMagick 问题,请参阅此
出现该问题是因为从 file
命令 returns 空字符串中发现的内容类型。
实际上系统无法找到 file
可执行文件,因此引发异常并返回空字符串。
检查下面的代码
begin
Paperclip.run("file", "-b --mime :file", :file => '/tmp/RackMultipart20160826-15649-kwvnq2.png').split(/[:;]\s+/).first
rescue Cocaine::CommandLineError
""
end
解决方法:-
在初始化文件中添加以下行。
Paperclip.options[:command_path] = '/usr/bin'
我在 google 云上部署我的应用程序时遇到问题,我收到此错误
has contents that are not what they are reported to be
本地运行正常!我已经尝试使用 command_path。所以我真的不知道接下来要做什么...
这是我的模型
has_mongoid_attached_file :image,
:styles => { :large => "380x380!" , :medium => "240x240", :small => "120x120!" },
:storage => :fog,
:fog_public => true,
:fog_directory => 'XXXX',
:path => "images/:id/:style/:basename.:extension",
:fog_credentials => { :provider => 'Google',
:google_storage_access_key_id => 'XXXXX',
:google_storage_secret_access_key => 'XXXXX'}
validates_attachment_content_type :image, :content_type => ["image/jpg", "image/jpeg", "image/png", "image/gif"]
感谢您的努力。希望大家帮帮我
看起来 Google 云无法确定上传文件的 MIME 类型。
您可以将文件扩展名映射到初始化程序中的类型(application.rb
、production.rb
或创建 initializers/paperclip.rb
)
Paperclip.options[:content_type_mappings] = {
:jpg => "image/jpeg",
:png => "image/png",
:gif => "image/gif"
}
但是这种方式不会对图片文件进行欺骗检查。
好的,我找到结果了。我刚刚创建了一个 initializers/paperclip.rb
文件
require 'paperclip/media_type_spoof_detector'
module Paperclip
class MediaTypeSpoofDetector
def spoofed?
false
end
end
end
现在它非常适合我。
如果您使用 Rails 在 App Engine 上遇到 ImageMagick 问题,请参阅此
出现该问题是因为从 file
命令 returns 空字符串中发现的内容类型。
实际上系统无法找到 file
可执行文件,因此引发异常并返回空字符串。
检查下面的代码
begin
Paperclip.run("file", "-b --mime :file", :file => '/tmp/RackMultipart20160826-15649-kwvnq2.png').split(/[:;]\s+/).first
rescue Cocaine::CommandLineError
""
end
解决方法:-
在初始化文件中添加以下行。
Paperclip.options[:command_path] = '/usr/bin'