Les téléchargements de FileZilla ne sont pas atomiques

J'ai utilisé FileZilla pendant un certain temps maintenant pour des trucs FTP, et alors qu'il fonctionne très bien presque tout le temps, il y a un défaut majeur que j'ai trouvé:

Si je télécharge un fichier modifié et qu'un utilisateur de mon site arrive à faire quelque chose qui utilise ce fichier (beaucoup plus commun avec les fichiers d'inclusion) au moment où il est téléchargé, l'utilisateur obtient une erreur PHP dans le sens d' unexpected $end parce que Le fichier est en cours de lecture alors qu'il est à moitié téléchargé.

Existe-t-il une option quelque part dans FileZilla pour verrouiller un fichier pendant son chargement, ce qui rend le téléchargement atomique, ou est-ce que j'ai de la chance et je suis retourné à la recherche d'un bon programme FTP?

C'est un problème général. Le protocole FTP ne prend en charge aucun mécanisme de verrouillage de fichier standard.

Il est possible de contourner cela en téléchargeant un fichier vers un nom de fichier temporaire; Et renommez-le à un nom final une fois que le téléchargement est effectué uniquement.

Dans le cas où le protocole SFTP est une option pour vous, le client SFTP / FTP WinSCP peut le faire de manière transparente pour tout téléchargement. Malheureusement, il prend en charge cela avec le protocole SFTP uniquement, pas avec le FTP. Voir Reprise automatique / Transfert vers le nom de fichier temporaire dans la documentation WinSCP.

(Je suis l'auteur de WinSCP)