module Util::FileManage module_function # 不同的类型扩展不同的目录 def relative_path "avatars" end def storage_path File.join(Rails.root, "public", "images", relative_path) end def disk_filename(source_type, source_id, suffix=nil) File.join(storage_path, "#{source_type}", "#{source_id}#{suffix}") end def source_disk_filename(source, suffix=nil) disk_filename(source.class.name, source.id, suffix) end def exist?(source_type, source_id, suffix=nil) File.exist?(disk_filename(source_type, source_id, suffix)) end def exists?(source, suffix=nil) File.exist?(disk_filename(source.class, source.id, suffix)) end def disk_file_url(source_type, source_id, suffix = nil) t = ctime(source_type, source_id, suffix) File.join('/images', relative_path, "#{source_type}", "#{source_id}#{suffix}") + "?t=#{t}" end def source_disk_file_url(source, suffix=nil) disk_file_url(source.class, source.id, suffix) end def ctime(source_type, source_id, suffix) return nil unless exist?(source_type, source_id, suffix) File.ctime(disk_filename(source_type, source_id, suffix)).to_i end def disk_auth_filename(source_type, source_id, type) File.join(storage_path, "#{source_type}", "#{source_id}#{type}") end def disk_real_name_auth_filename(source_id) disk_auth_filename('UserAuthentication', source_id, 'ID') end def auth_file_url(source_type, source_id, type) disk_file_url(source_type, source_id, type) end def real_name_auth_file_url(source_id) auth_file_url('UserAuthentication', source_id, 'ID') end def disk_professional_auth_filename(source_id) disk_auth_filename('UserAuthentication', source_id, 'PRO') end def professional_auth_file_url(source_id) auth_file_url('UserAuthentication', source_id, 'PRO') end end