Estoy agregando videos cargados por el usuario a mi sitio RoRs con la ayuda de la gema paperclip y almacenamiento s3. Por alguna razón que no puedo entender, cada vez que un usuario carga un archivo mp4, s3 establece el tipo de contenido para ese archivo como application/mp4
en lugar de video/mp4
.configuración del tipo de contenido para archivos mp4 en s3
Tenga en cuenta que me he registrado tipo mp4 mimo en un fichero de inicialización:
Mime::Type.lookup_by_extension('mp4').to_s => "video/mp4"
Aquí está la parte correspondiente de mi modelo de la publicación:
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"
¿Qué me falta en mi clip y/o s3 setup.
#### Actualización #####
Por alguna razón que está más allá de mi conocimiento de los carriles, mis tipos MIME predeterminados para mp4 archivos contenidos es el siguiente:
MIME::Types.type_for("my_video.mp4").to_s
=> "[application/mp4, audio/mp4, video/mp4, video/vnd.objectvideo]"
Por lo tanto, cuando paperclip envía un archivo mp4 a s3, parece identificar el tipo de mime del archivo como el primer valor predeterminado, "application/mp4". Es por eso que s3 identifica el archivo como un tipo de contenido de "aplicación/mp4". Como quiero habilitar la transmisión de estos archivos mp4, necesito un clip para identificar el archivo que tiene un tipo de mime de "video/mp4".
Hay una forma de modificar paperclip (tal vez en un filtro before_post_process) para permitir esto, o hay una manera de modificar los rieles a través de un archivo init para identificar los archivos mp4 como "video/mp4". Si pudiera hacer cualquiera de los dos, cuál es el mejor.
Gracias por su ayuda
tenido un problema similar con archivos .svg. Esto solucionó mis problemas:: s3_headers => {"Content-Type" => "image/svg + xml"} – DavidMann10k