La ripresa dei download di file in Ruby on Rails
-
30-09-2019 - |
Domanda
Finalmente ho trovato il modo di raggiungere questo!
Si è rivelato è semplice come abilitazione xsendfile e impostando il parametro Accept-Gamma
Leggi la mia risposta qui sotto
(a proposito, nella citazione blocco sotto ho scritto un comune neofiti trabocchetto - come ho fatto -. Fatto Tendiamo a pensare che dovrebbe essere programmato manualmente)
URL deve essere qualcosa del tipo: mysite.com/get_file?file_point=100 -> questo sarà letto dal byte 100
- Scarica l'offset da parametro (parametro file_point nel nostro esempio)
- Scopri la dimensione del file (File.Size)
- Leggere il file da offset per la lunghezza (equivalente di fseek in PHP)
- Invia il file utilizzando send_file
Non so come fare passo # 3 in Ruby nei passaggi precedenti.
Soluzione
Questo è stato come ho fatto:
response.header["Accept-Ranges"] = "bytes"
send_file product.pack.path, :type => product.pack_content_type, :x_sendfile=>true
Ho chiesto il nostro ragazzo server per configurare mod_xsendfile, non so come impostare io stesso.
tutorial qui: http: / /www.devsource.com/c/a/Techniques/Resumable-File-Downloads-with-ASPNet/2/
Leggi su Content-Length qui: http: // www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.13
A proposito di streaming è disponibile qui: http://api.rubyonrails.org/classes /ActionController/Streaming.html