definindo o tipo de conteúdo para arquivos mp4 no s3
Eu estou adicionando vídeos enviados por usuários para o meu site de RoRs com a ajuda do gem paperclip e armazenamento s3. Por alguma razão que não consigo descobrir, sempre que um usuário faz upload de um arquivo mp4, s3 define o tipo de conteúdo para esse arquivo comoapplication/mp4
ao invés devideo/mp4
.
Observe que registrei o tipo mp4 mime em um arquivo inicializador:
Mime::Type.lookup_by_extension('mp4').to_s => "video/mp4"
Aqui está a parte relevante do meu modelo 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"
O que estou perdendo no meu clipe de papel e / ou configuração s3.
####Atualizar#####
Por alguma razão que está além do meu conhecimento do Rails, meus tipos mime padrão para arquivos contidos em mp4 são os seguintes:
MIME::Types.type_for("my_video.mp4").to_s
=> "[application/mp4, audio/mp4, video/mp4, video/vnd.objectvideo]"
Então, quando paperclip envia um arquivo mp4 para s3, parece identificar o tipo mime do arquivo como o primeiro padrão, "application / mp4". É por isso que o s3 identifica o arquivo como tendo um tipo de conteúdo "application / mp4". Como desejo ativar o streaming desses arquivos mp4, preciso que o clipe de papel identifique o arquivo como um tipo mime de "video / mp4".
Existe uma maneira de modificar o clipe de papel (talvez em um filtro before_post_process) para permitir isso, ou existe uma maneira de modificar rails através de um arquivo init para identificar arquivos mp4 como sendo "video / mp4". Se eu pudesse fazer, qual é o melhor caminho.
Obrigado pela ajuda