Pregunta

Finalmente encontró la manera de lograr esto!

Resultó que es tan simple como permitir xsendfile y el establecimiento de parámetro de cabecera Accept-Rango

Lee mi respuesta a continuación

(por cierto, en la cita de bloque a continuación escribí novatos error común - como yo lo hice -. Hice Tendemos a pensar que se debe programar manualmente)

  

URL debe ser algo como:   mysite.com/get_file?file_point=100 ->   Esto permitirá la lectura de bytes 100

     
      
  1. Obtener el desplazamiento desde parámetro (parámetro file_point en nuestro ejemplo)
  2.   
  3. Para saber el tamaño del archivo (File.size)
  4.   
  5. Leer el archivo desde el desplazamiento de longitud (Equivalente de fseek en PHP)
  6.   
  7. enviar el archivo con send_file
  8.   
     

No sé cómo hacer el paso # 3 en Rubí   en los pasos anteriores.

¿Fue útil?

Solución

Así fue como lo hice:

response.header["Accept-Ranges"] = "bytes"
send_file product.pack.path, :type => product.pack_content_type, :x_sendfile=>true

Le pregunté a nuestro tipo de servidor para establecer mod_xsendfile, no sé cómo configurarlo yo mismo.

Tutorial aquí: http: / /www.devsource.com/c/a/Techniques/Resumable-File-Downloads-with-ASPNet/2/

Lea acerca de longitud de contenido aquí: http: // www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.13

Sobre el streaming está disponible aquí: http://api.rubyonrails.org/classes /ActionController/Streaming.html

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top