Θέλετε μια γρήγορη εισαγωγή; Απλά δείτε το παραπάνω βίντεο!
Πέρυσι, κυκλοφόρησα ένα βοηθητικό πρόγραμμα που ονομάζεται το Διακομιστής αρχείων Pafera . Είναι μια εφαρμογή κονσόλας γραμμένη σε Rust που εκτελεί μια διαχείριση αρχείων βασισμένη στον ιστό για τις συσκευές σας, επιτρέποντας εύκολη κοινή χρήση αρχείων σε οτιδήποτε διαθέτει πρόγραμμα περιήγησης ιστού με μια εύχρηστη λειτουργία προβολής διαφανειών για να αναδείξετε τις φωτογραφίες σας και τα εικονίδια shiba. Αυτό σημαίνει ότι μπορείτε να πάτε σε ένα πάρτι και να αφήσετε 200 φίλους να περιηγηθούν στις φωτογραφίες των πρόσφατων διακοπών σας στο τηλέφωνό τους, με τον δικό τους χρόνο και ρυθμό.
Αργότερα, καθώς ήρθαν διάφορες προτάσεις και μοτίβα χρήσης από φίλους και τυχαίους αγνώστους στο διαδίκτυο, άρχισα να προσθέτω όλο και περισσότερες δυνατότητες. Είναι πλέον σε θέση να συγχρονίζει ολόκληρα τα δέντρα καταλόγων, να διακωδικοποιεί αρχεία πολυμέσων, να ανοίγει αρχεία με εγγενείς εφαρμογές λειτουργικού συστήματος και να συγχρονίζει αυτόματα αρχεία σε όλες τις συσκευές σας.
Ωστόσο, ως εφαρμογή κονσόλας, υπήρχε πάντα ένα μεγάλο πρόβλημα που την εμπόδιζε να είναι μια καθολική λύση για όλες τις συσκευές σας:
Οι εφαρμογές της κονσόλας δεν μπορούν να εκτελεστούν σε iOS, που σημαίνει ότι δεν θα μπορούσατε να εκτελέσετε τον διακομιστή αρχείων Pafera σε iPhone ή iPad...
Μέχρι τώρα.
Είχα λίγο ελεύθερο χρόνο στο διάλειμμα των Χριστουγέννων ενώ το Μαυροβούνιο γιόρταζε τις γιορτές, έτσι πειραματίστηκα γράφοντας μια συνοδευτική εφαρμογή πολλαπλών πλατφορμών στο Flutter/Dart που θα σας επέτρεπε να περιηγείστε εύκολα σε διακομιστές από το τηλέφωνό σας. Με αυτόν τον τρόπο, οι λιγότερο τεχνολογικοί φίλοι μου θα μπορούσαν απλώς να πατήσουν δύο κουμπιά και να συνδεθούν με τους διακομιστές μου.
Στην πορεία, κατάλαβα ότι θα μπορούσατε πραγματικά να χρησιμοποιήσετε το Dart για να εκτελέσετε τον δικό σας διακομιστή ιστού σε συσκευές iOS και σκέφτηκα...
Γεια σου! Γιατί δεν εφαρμόζω απλώς τον διακομιστή αρχείων στο Dart!
Έτσι, δύο εβδομάδες αργότερα, η εφαρμογή είναι εδώ.
Τώρα, η απόδοση είναι τρομερά αργή σε σύγκριση με την έκδοση Rust. Ο διακομιστής Rust μπορεί να εξυπηρετήσει περίπου 40.000 αιτήματα ανά δευτερόλεπτο...
Ενώ η έκδοση Dart μπορεί να εξυπηρετήσει μόνο περίπου 400....
Το σημαντικό όμως είναι ότι λειτουργεί...
και εγκαθίσταται σε iPhone!
Λόγω ενός σφάλματος στη βιβλιοθήκη PDFx με πρόσφατες εκδόσεις του Flutter, έπρεπε να σταματήσω να χρησιμοποιώ όμορφα εικονίδια για όλα τα κουμπιά, καθώς εμφανίζονταν ως άσχημες μαύρες γραμμές.
Ωστόσο, η βασική λειτουργία παραμένει η ίδια.
Μόλις συνδεθούν όλοι στο ίδιο δίκτυο WiFi ή στο σημείο πρόσβασης του τηλεφώνου σας, απλώς κάντε κλικ στο εικονίδιο της εφαρμογής, επιλέξτε το φάκελο που θέλετε να μοιραστείτε και πατήστε "Έναρξη διακομιστή".
Στη συνέχεια, κάντε κλικ στο κουμπί του κωδικού QR, αφήστε τους φίλους σας να τον σαρώσουν και, στη συνέχεια, μπορούν να περιηγηθούν με ευχαρίστηση στον φάκελο σας στα τηλέφωνά τους, ακόμη και να κάνουν streaming ταινιών από το τηλέφωνό σας απευθείας στα τηλέφωνά τους.
Εάν ο φίλος σας χρησιμοποιεί φορητό υπολογιστή ή επιτραπέζιο υπολογιστή, ούτε αυτό είναι πρόβλημα. Απλώς πληκτρολογήστε τη διεύθυνση URL που εμφανίζεται πάνω από τον κωδικό QR στη συσκευή τους και μπορούν να κάνουν ακριβώς το ίδιο.
Εάν δεν τρέχετε σε iOS ή Android, ούτε αυτό είναι πρόβλημα. Οι Εφαρμογές Flutter λειτουργούν μια χαρά σε OSX, Windows και Linux, επομένως θα έχετε την ίδια λειτουργικότητα και ακόμη περισσότερες εάν εγκαταστήσετε τα rsync, FFMpeg και ImageMagick στο σύστημά σας για χρήση της εφαρμογής.
Υπάρχουν αρκετές προηγμένες λειτουργίες εκτός από την απλή κοινή χρήση αρχείων, γι' αυτό θα δώσω μια γρήγορη επισκόπηση εδώ.
Το όνομα κεντρικού υπολογιστή είναι αυτό που εμφανίζεται σε άλλες συσκευές όταν κάνουν κλικ στην "Αναζήτηση για άλλους διακομιστές". Μπορείτε να το χρησιμοποιήσετε για να διακρίνετε γρήγορα μια συσκευή από την άλλη εάν μοιράζεστε μερικές συσκευές ταυτόχρονα.
Ο φάκελος είναι ο φάκελος του συστήματος αρχείων που μοιράζεστε στην πραγματικότητα. Μπορείτε να κάνετε κλικ στην επιλογή "Χρήση φακέλου εγγράφων" για την προεπιλογή στα Έγγραφα/κοινόχρηστα ή μπορείτε να κάνετε κλικ στην επιλογή "Επιλογή φακέλου" για να επιλέξετε άλλο φάκελο. Ίσως χρειαστεί επίσης να κάνετε κλικ στο "Χρήση φακέλου εγγράφων" εάν το iOS δεν ανανεώνει σωστά τις ρυθμίσεις της εφαρμογής κατά την επαναφορά από την κατάσταση αναστολής λειτουργίας.
Η χρήση τρέχουσας IP ανιχνεύει αυτόματα την τρέχουσα IP WiFi της συσκευής σας. Όπως και με το "Χρήση φακέλου εγγράφων," χρησιμοποιήστε το εάν το iOS δεν ανανεώνει σωστά την εφαρμογή και εξακολουθεί να χρησιμοποιεί IP από προηγούμενο δίκτυο WiFi.
"Κοινή χρήση σε όλες τις διεπαφές" ορίζει τη δημόσια IP σε 0.0.0.0, που σημαίνει ότι καθένας σε οτιδήποτε είστε συνδεδεμένοι θα μπορείτε να δείτε τον διακομιστή σας. Εύχρηστο σε επιτραπέζιους υπολογιστές με περισσότερες από μία συνδέσεις, αλλά να είστε προσεκτικοί όταν το χρησιμοποιείτε σε δημόσιους χώρους.
"Έναρξη κοινής χρήσης" θα τρέξει τον διακομιστή και θα ανοίξει την αρχική σελίδα για διαχείριση. Κάνοντας ξανά κλικ σε αυτό θα σταματήσει ο διακομιστής και θα διατηρηθούν τα αρχεία σας ασφαλή.
"Φόρτωση τελευταίων ρυθμίσεων" και "Αποθήκευση τρεχουσών ρυθμίσεων" κάνε ακριβώς αυτό που λένε. Οι ρυθμίσεις σας θα αποθηκευτούν στο Documents/paferafileserver.cfg όπως και η έκδοση Rust της κονσόλας.
Οι διάφορες επιλογές κωδικού πρόσβασης υπάρχουν για να δώσουν σε διαφορετικούς ανθρώπους διαφορετικά επίπεδα πρόσβασης.
Κανονικά, όλοι μπορούν να δουν τα αρχεία σας απλώς με τη σύνδεση στον διακομιστή σας, αλλά αν επιλέξετε "Ενεργοποίηση ιδιωτικών αρχείων"; κάτω από αυτά, τότε κανείς δεν θα μπορεί να δει τα αρχεία σας χωρίς τον κωδικό πρόσβασης ανάγνωσης.
Ο κωδικός εγγραφής χρησιμοποιείται για τη μεταφόρτωση, μετακίνηση, αντιγραφή ή διαγραφή αρχείων. Χωρίς αυτό, κανείς άλλος δεν μπορεί να κάνει τίποτα στο σύστημά σας εκτός από την προβολή των αρχείων σας.
Ο κωδικός πρόσβασης του κελύφους είναι άχρηστος στην εφαρμογή για κινητά, αλλά είναι πολύ χρήσιμος σε λειτουργικά συστήματα επιτραπέζιου υπολογιστή και στο Termux στο Android. Σας επιτρέπει να εκτελείτε αυθαίρετες εντολές συστήματος, οι οποίες το καθιστούν πολύ ισχυρό και πολύ επικίνδυνο ταυτόχρονα. Αυτή η δυνατότητα είναι απενεργοποιημένη από προεπιλογή και πρέπει και οι δύο να εισαγάγετε έναν κωδικό πρόσβασης κελύφους και επιλέξτε "Ενεργοποίηση εντολών φλοιού"; παρακάτω για να το χρησιμοποιήσετε.
Οι διάφορες επιλογές ενεργοποίησης και απενεργοποίησης σάς επιτρέπουν να επιλέξετε τι μπορούν να κάνουν άλλα άτομα στο σύστημά σας ακόμα και όταν έχουν ήδη τον σωστό κωδικό πρόσβασης. Αυτά παρακάμπτουν όλες τις άλλες επιλογές, επομένως εάν απενεργοποιήσετε την αντιγραφή αρχείων, κανείς - ούτε εσείς οι ίδιοι - δεν θα μπορεί να αντιγράψει αρχεία.
Η ειδική επιλογή "Απενεργοποίηση ελέγχου κλειδιού SSH" είναι για άτομα σαν εμένα που περιφέρονται συνεχώς ενώ συγχρονίζουν αρχεία μεταξύ διαφορετικών συσκευών. Κανονικά, το SSH θα ζητήσει επιβεβαίωση όταν συνδέεται σε ένα σύστημα του οποίου η διεύθυνση IP έχει αλλάξει, ακόμα κι αν η ταυτότητα του συστήματος είναι ήδη γνωστή. Αυτή η επιλογή θα σας επιτρέψει να συγχρονίζετε αυτόματα αρχεία σε διαφορετικά δίκτυα χωρίς να πέφτετε στην κονσόλα για να επιβεβαιώσετε τις συνδέσεις SSH. Χρησιμοποιήστε το με προσοχή όταν βρίσκεστε σε δίκτυα που δεν ελέγχετε μόνοι σας.
Σε αντίθεση με την εκτέλεση στο Termux ή σε περιβάλλον επιφάνειας εργασίας, οι εφαρμογές iOS και Android δεν έχουν πρόσβαση σε κέλυφος, rsync, ImageMagick ή FFMpeg, επομένως όλες οι προηγμένες λειτουργίες συγχρονισμού και διακωδικοποίησης είναι απενεργοποιημένες.
Επειδή τα λειτουργικά συστήματα για κινητά μπορούν να σκοτώσουν εφαρμογές παρασκηνίου ανά πάσα στιγμή, απενεργοποιούνται επίσης οι αυτόματες εργασίες με χρονισμό.
Υπάρχουν πιθανές λύσεις για όλες αυτές τις πτυχές, αλλά ο χρόνος που απαιτείται για την ενσωμάτωση αυτών των δυνατοτήτων είναι πέρα από τις προθέσεις μου αυτή τη στιγμή. Αν κάποιος ενδιαφέρεται να με πληρώσει για να τον προσθέσω, τότε θα δούμε τι θα συμβεί. 😁
Όπως με όλα τα έργα μου, ο πηγαίος κώδικας φιλοξενείται στο Codeberg και μπορεί να είναι βρέθηκε εδώ .
Για προμεταγλωττισμένα δυαδικά αρχεία, μπορείτε περιηγηθείτε στον κατάλογο έκδοσης εδώ ...
Ή απλώς κάντε κλικ στους παρακάτω συνδέσμους:
Λόγω των απαιτήσεων υπογραφής Apple, οι χρήστες iOS και OSX πρέπει να περιμένουν να είναι διαθέσιμη η εφαρμογή στο App Store ή να κατεβάσουν τον πηγαίο κώδικα και να μεταγλωττίσουν τη δική σας έκδοση για τις συσκευές σας.
Καθώς πρόκειται για μια νέα έκδοση, είμαι σίγουρος ότι θα υπάρχουν πολλά σφάλματα και περίεργη συμπεριφορά σε διάφορα συστήματα. Εάν θέλετε να δοκιμάσετε beta αυτήν την εφαρμογή για εμένα, στείλτε μου ένα email με τη συσκευή σας και την έκδοση του λειτουργικού συστήματος και θα σας ρυθμίσω στο TestFlight.
Η διανομή μιας εφαρμογής Flutter είναι στην πραγματικότητα πολύ πιο περίπλοκη από την έκδοση Rust, όπου απλώς ανεβάζω ένα μόνο εκτελέσιμο αρχείο και τελειώνω με το όλο θέμα, επομένως, κατανοήστε πότε χρειάζονται τρεις εβδομάδες για να ελέγξει η Apple την εφαρμογή μου και να την επιτρέψει στο iOS App Store. Τα πράγματα θα πρέπει να είναι πολύ πιο εύκολα όταν η Apple υποχρεούται να επιτρέπει εφαρμογές τρίτων σύμφωνα με την απόφαση της ΕΕ.
Όπως πάντα, ελπίζω να βρείτε αυτή την εφαρμογή χρήσιμη και αν θέλετε να την προσαρμόσετε για τους δικούς σας σκοπούς, είμαι πάντα διαθέσιμος ως τεχνικός σύμβουλος. Καλή διασκέδαση!
Σχετικά με τον συγγραφέα |
|
![]() |
Ο Jim ασχολείται με τον προγραμματισμό από τότε που απέκτησε ένα IBM PS/2 στη δεκαετία του '90. Μέχρι σήμερα, εξακολουθεί να προτιμά να γράφει HTML και SQL με το χέρι και εστιάζει στην αποτελεσματικότητα και την ορθότητα στη δουλειά του. |