установка типа контента для файлов 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.
####Update#####
По некоторым причинам, которые мне не известны в Rails, мои типы mime по умолчанию для файлов, содержащих mp4, следующие:
MIME::Types.type_for("my_video.mp4").to_s
=> "[application/mp4, audio/mp4, video/mp4, video/vnd.objectvideo]"
Таким образом, когда paperclip отправляет файл mp4 на s3, он, по-видимому, идентифицирует тип mime файла в качестве первого значения по умолчанию, «application / mp4». Вот почему s3 идентифицирует файл как имеющий тип контента «application / mp4». Поскольку я хочу включить потоковую передачу этих файлов mp4, мне понадобится скрепка, чтобы идентифицировать файл как имеющий тип MIME "video / mp4".
Есть ли способ изменить скрепку (может быть, в фильтре before_post_process), чтобы сделать это, или есть способ изменить рельсы через файл инициализации, чтобы идентифицировать файлы mp4 как "video / mp4". Если бы я мог сделать то, что лучше.
Спасибо за вашу помощь