8 votes

Nodejs - Prise en charge de la gamme HTTP / Téléchargement partiel de fichiers

Je suis en train de créer une application web musicale qui diffuse des MP3 que j'ai stockés dans MongoDB (GridFS).

Ma question : Comment puis-je ajouter la prise en charge de la plage http afin de pouvoir commencer à diffuser le fichier audio à la moitié de son parcours sans avoir à attendre le tampon.

Je sais que GridFS prend en charge la lecture de X octets - X octets, donc j'ai juste besoin de savoir comment faire comprendre à nodejs qu'il a seulement besoin des octets X - X.

Merci !

12voto

DeaDEnD Points 6890

Le client enverra un Range en-tête spécifiant les octets absolus de début et de fin, suivi de la longueur totale du fichier ou de '*'.

Exemples :

  . The first 500 bytes:
   bytes 0-499/1234

  . The second 500 bytes:
   bytes 500-999/1234

  . All except for the first 500 bytes:
   bytes 500-1233/1234

  . The last 500 bytes:
   bytes 734-1233/1234

Le serveur devrait alors renvoyer un code de réponse 206 (Contenu partiel) et le Content-Length ne devrait être que la quantité de données transmises.

Dans le cas où la plage est incorrecte, le serveur devrait soit retourner 416 (Plage demandée non satisfaisable) avec un Content-Range domaine de bytes */* ou doit ignorer la demande de plage et renvoyer un 200 avec le corps entier du fichier.

Le serveur doit également envoyer un Accept-Ranges avec la valeur de l'unité de gamme acceptée, dans ce cas-ci bytes . Mais l'unité de gamme peut être n'importe quelle unité de gamme personnalisée que vous voulez.

Source : rfc2616

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X