Video isn't of allowed type (allowed types: vi

2019-08-03 20:30发布

问题:

I'm trying to validate my videos to only allow .mp4 videos to be uploaded. I'm using Shrine to do this. Videos upload no problem without validations, but if I add the validation code the error displays: Video isn't of allowed type (allowed types: video/mp4)

Here is my code:

video_uploader.rb

require "streamio-ffmpeg"

class VideoUploader < Shrine
  plugin :processing
  plugin :versions

  plugin :determine_mime_type
  plugin :cached_attachment_data
  plugin :remove_attachment
  plugin :add_metadata

  add_metadata do |io|
    video = FFMPEG::Movie.new(io.path)
    { "duration" => video.duration}
  end

  metadata_method :duration

  Attacher.validate do
    validate_max_size 200.megabyte, message: "is too large (max is 1 MB)"
    validate_mime_type_inclusion ['video/mp4']
  end
end

The video I'm trying to upload is definitely a .mp4 and I have this exact validation working in my image_uploader.rb file, so I'm not sure why it isn't working with my video_uploader.rb. Any ideas?