Reprise Téléchargements de fichier en Ruby on Rails
-
30-09-2019 - |
Question
Enfin trouvé comment y parvenir!
est avéré que c'est aussi simple que le paramètre permettant d'en-tête xsendfile et réglage Accept-Range
Lire ma réponse ci-dessous
(par ailleurs, dans le bloc de citation ci-dessous j'ai écrit un newbies pitfall commun - comme je l'ai fait -. Nous avons tendance à fait penser qu'il devrait être programmé manuellement)
doit être quelque chose commeURL: mysite.com/get_file?file_point=100 -> cela lecture de l'octet 100
- Obtenir le décalage par rapport paramètre (paramètre file_point dans notre exemple)
- En savoir la taille du fichier (File.size)
- lire le fichier de décalage de longueur (équivalent de fseek en PHP)
- Envoyer le fichier à l'aide send_file
Je ne sais pas comment faire l'étape 3 en Ruby dans les étapes ci-dessus.
La solution
Ce fut ainsi que je l'ai fait:
response.header["Accept-Ranges"] = "bytes"
send_file product.pack.path, :type => product.pack_content_type, :x_sendfile=>true
J'ai demandé notre type de serveur pour configurer mod_xsendfile, je ne sais pas comment il régler moi-même.
Tutoriel ici: http: / /www.devsource.com/c/a/Techniques/Resumable-File-Downloads-with-ASPNet/2/
Lisez à propos de longueur de contenu ici: http: // www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.13
A propos de streaming est disponible ici: http://api.rubyonrails.org/classes /ActionController/Streaming.html