J'utilise fswebcam
pour prendre des photos de ma webcam et les écrire sur /var/www
pour que tout le monde puisse les voir sur mon site Web.
Le problème est que mon serveur est un Raspberry Pi avec une carte SD lente. L'écriture de l'image sur la carte SD prend plusieurs secondes. Si un utilisateur demande l'image en cours d'écriture, il en obtiendra une version à moitié terminée:
Est-il possible de faire en sorte qu'Apache attende qu'une image soit entièrement écrite avant de la servir?
Déplacer un fichier sur le même disque est une opération très rapide (presque instantanée). Au lieu de les enregistrer directement sur www
, enregistrez-les dans un autre répertoire du même disque où Apache ne peut pas les voir. Puis, quand ils sont entièrement sauvegardés, déplacez-les en place dans www
.
Je ne suis pas sûr à propos d'Apache mais je pense qu'un langage de script devrait pouvoir détecter si un fichier est en cours d'écriture (peut-être en utilisant des descripteurs de fichier?)
Vous pouvez ensuite attendre la fin et servir le fichier.