Vous souhaitez une présentation rapide ? Regardez simplement la vidéo ci-dessus !
L'année dernière, j'ai publié un utilitaire appelé le Serveur de fichiers Pafera . C'est une application console écrite en Rust qui exécute un gestionnaire de fichiers Web pour vos appareils, permettant un partage de fichiers facile avec tout ce qui dispose d'un navigateur Web avec une fonction de diaporama pratique pour montrer vos photos et vos icônes shiba. Cela signifie que vous pouvez aller à une fête et laisser 200 amis parcourir vos photos de vacances récentes sur leurs propres téléphones, à leur rythme et à leur rythme.
Plus tard, au fur et à mesure que diverses suggestions et modèles d'utilisation sont arrivés de la part d'amis et d'inconnus sur Internet, j'ai commencé à ajouter de plus en plus de fonctionnalités. Il est désormais capable de synchroniser des arborescences de répertoires entières, de transcoder des fichiers multimédias, d'ouvrir des fichiers avec des applications natives du système d'exploitation et de synchroniser automatiquement des fichiers sur vos appareils.
Cependant, étant une application console, il y avait toujours un gros problème qui l'empêchait d'être une solution universelle pour tous vos appareils :
Les applications de console ne peuvent pas fonctionner sur iOS, ce qui signifie que vous ne pouvez pas exécuter le serveur de fichiers Pafera sur les iPhones ni sur les iPad...
Jusqu'à maintenant.
J'avais un peu de temps libre pendant les vacances de Noël, alors que le Monténégro célébrait les fêtes, alors j'ai essayé d'écrire une application compagnon multiplateforme dans Flutter/Dart qui vous permettrait de parcourir facilement les serveurs depuis votre téléphone. De cette façon, mes amis moins férus de technologie pourraient simplement appuyer sur deux boutons et se connecter à mes serveurs.
En chemin, j'ai découvert que vous pouviez en fait utiliser Dart pour exécuter votre propre serveur Web sur des appareils iOS, et j'ai pensé...
Hé ! Pourquoi ne pas simplement implémenter le serveur de fichiers dans Dart à la place !
Donc deux semaines plus tard, l’application est là.
Maintenant, les performances sont terriblement lentes par rapport à la version Rust. Le serveur Rust peut traiter environ 40 000 requêtes par seconde...
Alors que la version Dart ne peut servir qu'environ 400...
Mais l'important c'est que ça marche...
et il s'installe sur les iPhones !
En raison d’un bug dans la bibliothèque PDFx avec les versions récentes de Flutter, j’ai dû arrêter d’utiliser de jolies icônes pour tous les boutons car elles apparaissaient comme de vilaines lignes noires.
Cependant, le fonctionnement de base reste le même.
Une fois que tout le monde est connecté au même réseau Wi-Fi ou au point d'accès de votre téléphone, cliquez simplement sur l'icône de l'application, choisissez le dossier que vous souhaitez partager et appuyez sur « Démarrer le serveur ».
Cliquez ensuite sur le bouton du code QR, laissez vos amis le scanner, puis ils pourront parcourir votre dossier sur leur téléphone, et même diffuser des films depuis votre téléphone directement sur leur téléphone.
Si votre ami utilise un ordinateur portable ou de bureau, ce n’est pas un problème non plus. Il suffit de saisir l’URL affichée au-dessus du code QR sur son appareil et il pourra faire exactement la même chose.
Si vous n’utilisez pas iOS ou Android, ce n’est pas un problème non plus. Les applications Flutter fonctionnent parfaitement sur OSX, Windows et Linux, vous obtiendrez donc les mêmes fonctionnalités, et même plus, si vous installez rsync, FFMpeg et ImageMagick sur votre système pour que l’application puisse les utiliser.
Il existe de nombreuses fonctionnalités avancées en plus du simple partage de fichiers, je vais donc vous donner ici un aperçu rapide.
Le nom d'hôte est ce qui s'affiche sur les autres appareils lorsqu'ils cliquent sur « Rechercher d'autres serveurs ». Vous pouvez l'utiliser pour distinguer rapidement un appareil d'un autre si vous partagez plusieurs appareils en même temps.
Le dossier est le dossier du système de fichiers que vous partagez réellement. Vous pouvez cliquer sur « Utiliser le dossier de documents » pour la valeur par défaut dans Documents/partagés, ou vous pouvez cliquer sur « Choisir un dossier » pour choisir un autre dossier. Vous devrez peut-être également cliquer sur « Utiliser le dossier de documents » si iOS n'actualise pas correctement les paramètres de l'application lors de la sortie de veille.
Utiliser l'adresse IP actuelle détecte automatiquement l'adresse IP Wi-Fi actuelle de votre appareil. Comme avec « Utiliser le dossier Documents », utilisez-le si iOS n'actualise pas correctement l'application et qu'elle utilise toujours une adresse IP d'un réseau Wi-Fi précédent.
« Partager sur toutes les interfaces » définit l'IP publique sur 0.0.0.0, ce qui signifie que tout le monde sur tout ce à quoi vous êtes connecté, vous pourrez voir votre serveur. Pratique sur les ordinateurs de bureau avec plusieurs connexions, mais soyez prudent lorsque vous l'utilisez dans les lieux publics.
« Démarrer le partage » exécutera le serveur et ouvrira la page d'accueil pour que vous puissiez le gérer. Cliquez à nouveau dessus pour arrêter le serveur et protéger vos fichiers.
« Charger les derniers paramètres » et « Enregistrer les paramètres actuels » font exactement ce qu'ils disent. Vos paramètres seront stockés dans Documents/paferafileserver.cfg, tout comme la version console de Rust.
Les différentes options de mot de passe sont là pour donner à différentes personnes différents niveaux d'accès.
Normalement, tout le monde peut voir vos fichiers simplement en se connectant à votre serveur, mais si vous cochez « Activer les fichiers privés » en dessous, personne ne pourra voir vos fichiers sans le mot de passe de lecture.
Le mot de passe d'écriture est utilisé pour télécharger, déplacer, copier ou supprimer des fichiers. Sans cela, personne d'autre ne peut rien faire sur votre système à part consulter vos fichiers.
Le mot de passe du shell est inutile sur l'application mobile, mais il est très utile sur les systèmes d'exploitation de bureau et Termux sur Android. Il vous permet d'exécuter des commandes système arbitraires, ce qui le rend très puissant et très dangereux en même temps. Cette fonctionnalité est désactivée par défaut et vous devez à la fois saisir un mot de passe du shell et cochez « Activer les commandes shell » ci-dessous pour l'utiliser.
Les différentes options d'activation et de désactivation vous permettent de choisir ce que d'autres personnes peuvent faire sur votre système même quand ils ont déjà le bon mot de passe. Ceux-ci remplacent toutes les autres options, donc si vous désactivez la copie des fichiers, personne - pas même vous-même - ne pourra copier les fichiers.
L'option spéciale « Désactiver la vérification de clé SSH » est destinée aux personnes comme moi qui se déplacent constamment pour synchroniser des fichiers entre différents appareils. Normalement, SSH demandera une confirmation lors de la connexion à un système dont l'adresse IP a changé, même si l'identité de ce système est déjà connue. Cette option vous permettra de synchroniser automatiquement des fichiers sur différents réseaux sans avoir à accéder à la console pour confirmer les connexions SSH. Utilisez-la avec précaution lorsque vous êtes sur des réseaux que vous ne contrôlez pas vous-même.
Contrairement à l'exécution dans Termux ou dans un environnement de bureau, les applications iOS et Android n'ont pas accès à un shell, rsync, ImageMagick ou FFMpeg, donc toutes les fonctionnalités avancées de synchronisation et de transcodage sont désactivées.
Étant donné que les systèmes d’exploitation mobiles peuvent arrêter les applications en arrière-plan à tout moment, les tâches automatiques chronométrées sont également désactivées.
Il existe des solutions de contournement possibles pour tous ces aspects, mais le temps nécessaire à l’intégration de ces fonctionnalités dépasse mes intentions pour le moment. Si quelqu’un est intéressé à me payer pour les ajouter, nous verrons ce qui se passe. 😁
Comme pour tous mes projets, le code source est hébergé sur Codeberg et peut être trouvé ici .
Pour les binaires précompilés, vous pouvez parcourir le répertoire des versions ici ...
Ou cliquez simplement sur les liens ci-dessous :
En raison des exigences de signature d'Apple, les utilisateurs iOS et OSX doivent attendre que l'application soit disponible sur l'App Store ou télécharger le code source et compiler votre propre version pour vos appareils.
Comme il s'agit d'une nouvelle version, je suis sûr qu'il y aura de nombreux bugs et comportements étranges sur divers systèmes. Si vous souhaitez tester cette application pour moi, envoyez-moi un e-mail avec votre appareil et la version de votre système d'exploitation et je vous installerai sur TestFlight.
Distribuer une application Flutter est en réalité bien plus compliqué que la version Rust, où je télécharge simplement un seul exécutable et j'en ai fini avec le tout. Soyez donc compréhensif lorsqu'il faut trois semaines à Apple pour vérifier mon application et l'autoriser dans l'App Store iOS. Les choses devraient être beaucoup plus faciles lorsque Apple sera obligé d'autoriser les applications tierces conformément à la décision de l'UE.
Comme toujours, j'espère que vous trouverez cette application utile, et si vous souhaitez la personnaliser selon vos propres besoins, je suis toujours disponible en tant que consultant technique. Amusez-vous bien !
À propos de l'auteur |
|
![]() |
Jim programme depuis qu'il a reçu une IBM PS/2 dans les années 90. Aujourd'hui encore, il préfère écrire du HTML et du SQL à la main et se concentre sur l'efficacité et la précision dans son travail. |