настройка типа контента -для файлов mp4 на s3

Я добавляю видео, загруженные пользователями, на свой сайт RoRs с помощью драгоценного камня скрепки и хранилища s3. По какой-то причине, которую я не могу понять, всякий раз, когда пользователь загружает файл mp4, s3 устанавливает тип содержимого -для этого файла как application/mp4вместо video/mp4.

Обратите внимание, что я зарегистрировал тип mime mp4 в файле инициализатора :

Mime::Type.lookup_by_extension('mp4').to_s => "video/mp4"

. Вот соответствующая часть моей модели Post:

  has_attached_file :video, 
                :storage => :s3,
                :s3_credentials => "#{Rails.root.to_s}/config/s3.yml",
                :path => "/video/:id/:filename"

  validates_attachment_content_type :video,
     :content_type => ['video/mp4'],
     :message => "Sorry, this site currently only supports MP4 video"

Чего мне не хватает в моей скрепке и/или наборе s3 -.

####Обновление#####

По какой-то причине, которая выходит за рамки моего знания Rails, мои типы mime по умолчанию для файлов, содержащихся в mp4, следующие:

    MIME::Types.type_for("my_video.mp4").to_s
 => "[application/mp4, audio/mp4, video/mp4, video/vnd.objectvideo]" 

Таким образом, когда скрепка отправляет файл mp4 на s3, он, кажется, идентифицирует тип mime файла как первое значение по умолчанию «application/mp4». Вот почему s3 идентифицирует файл как имеющий тип содержимого -«application/mp4». Поскольку я хочу включить потоковую передачу этих файлов mp4, мне нужна скрепка, чтобы идентифицировать файл как имеющий MIME-тип «video/mp4».

Есть ли способ изменить скрепку (, возможно, в фильтре процесса до _после _), чтобы разрешить это, или есть способ изменить рельсы через файл инициализации, чтобы идентифицировать файлы mp4 как " видео/mp4". Если бы я мог сделать то же самое, какой способ лучше.

Спасибо за помощь

6
задан chuck w 24 July 2012 в 19:02
поделиться