Vrei o prezentare rapidă? Doar urmăriți videoclipul de mai sus!
Anul trecut, am lansat un utilitar numit Server de fișiere Pafera . Este o aplicație de consolă scrisă în Rust care rulează un manager de fișiere bazat pe web pentru dispozitivele dvs., permițând partajarea ușoară a fișierelor către orice are un browser web cu o funcție de prezentare la îndemână pentru a vă prezenta fotografiile și pictogramele shiba. Aceasta înseamnă că poți merge la o petrecere și poți lăsa 200 de prieteni să răsfoiască fotografiile tale recente de vacanță pe propriile telefoane, în timpul și în ritmul lor.
Mai târziu, pe măsură ce au venit diverse sugestii și modele de utilizare de la prieteni și străini aleatoriu de pe internet, am început să adaug din ce în ce mai multe funcții. Acum este capabil să sincronizeze întregi arbori de directoare, să transcodeze fișiere media, să deschidă fișiere cu aplicații native ale sistemului de operare și să sincronizeze automat fișierele pe dispozitivele dvs.
Cu toate acestea, fiind o aplicație de consolă, a existat întotdeauna o mare problemă care a împiedicat-o să fie o soluție universală pentru toate dispozitivele dvs.:
Aplicațiile de consolă nu pot rula pe iOS, ceea ce înseamnă că nu puteți rula serverul de fișiere Pafera pe iPhone sau iPad...
Până acum.
Am avut ceva timp liber în vacanța de Crăciun, în timp ce Muntenegru sărbătorește sărbătorile, așa că am experimentat cu scrierea unei aplicații însoțitoare multiplatformă în Flutter/Dart, care să vă permită să răsfoiți cu ușurință serverele de pe telefon. În acest fel, prietenii mei mai puțin înclinați spre tehnologie ar putea doar să apese două butoane și să se conecteze la serverele mele.
Pe parcurs, mi-am dat seama că ai putea folosi Dart pentru a rula propriul tău server web pe dispozitive iOS și m-am gândit...
Hei! De ce nu implementez serverul de fișiere în Dart!
Deci, două săptămâni mai târziu, aplicația este aici.
Acum, performanța este îngrozitor de lentă în comparație cu versiunea Rust. Serverul Rust poate servi aproximativ 40.000 de cereri pe secundă...
În timp ce versiunea Dart poate servi doar aproximativ 400....
Dar important este că funcționează...
și se instalează pe iPhone!
Din cauza unei erori din biblioteca PDFx cu versiunile recente ale Flutter, a trebuit să nu mai folosesc pictograme frumoase pentru toate butoanele, deoarece acestea apăreau ca linii negre urâte.
Cu toate acestea, operațiunea de bază rămâne aceeași.
Odată ce toată lumea este conectată la aceeași rețea WiFi sau la hotspot-ul telefonului dvs., faceți clic pe pictograma aplicației, alegeți folderul pe care doriți să-l partajați și atingeți „Porniți serverul”.
Apoi faceți clic pe butonul de cod QR, lăsați-vă prietenii să-l scaneze și apoi ei pot să vă răsfoiască cu plăcere folderul pe telefoanele lor, chiar și să transmită filme de pe telefon direct pe telefoanele lor.
Dacă prietenul tău folosește un laptop sau un computer desktop, nici asta nu este nicio problemă. Doar introduceți adresa URL afișată deasupra codului QR pe dispozitivul lor și ei pot face exact același lucru.
Dacă nu rulați pe iOS sau Android, nici asta nu este nicio problemă. Aplicațiile Flutter funcționează foarte bine pe OSX, Windows și Linux, așa că veți obține aceeași funcționalitate și chiar mai mult dacă instalați rsync, FFMpeg și ImageMagick pe sistemul dvs. pentru ca aplicația să le folosească.
Există destul de multe funcții avansate pe lângă partajarea simplă a fișierelor, așa că voi oferi aici o scurtă prezentare generală.
Numele de gazdă este ceea ce se afișează altor dispozitive atunci când fac clic pe „Căutați alte servere”. Îl puteți folosi pentru a distinge rapid un dispozitiv de altul dacă partajați câteva dispozitive în același timp.
Folder este folderul sistemului de fișiere pe care îl partajați de fapt. Puteți face clic pe „Utilizați folderul documente”; pentru valoarea implicită în Documente/partajat, sau puteți face clic pe „Alege folderul”; pentru a alege alt folder. De asemenea, poate fi necesar să faceți clic pe „Utilizați folderul documente”; dacă iOS nu reîmprospătează corect setările aplicației la reluarea din repaus.
Utilizați IP curent detectează automat IP-ul WiFi actual al dispozitivului dvs. Ca și în cazul "Utilizați folderul de documente," utilizați-l dacă iOS nu reîmprospătează aplicația în mod corespunzător și încă folosește un IP de la o rețea WiFi anterioară.
"Partajare pe toate interfețele" setează IP-ul public la 0.0.0.0, ceea ce înseamnă că toată lumea pe orice la care ești conectat, vei putea vedea serverul tău. Utilizabil pe desktop-uri cu mai multe conexiuni, dar aveți grijă să îl folosiți în locuri publice.
"Începe să distribuie" va rula serverul și va deschide pagina de pornire pentru a o gestiona. Făcând clic din nou, serverul va opri și va păstra fișierele în siguranță.
"Încărcați ultimele setări" și "Salvați setările curente" face exact ce spun ei. Setările dvs. vor fi stocate în Documents/paferafileserver.cfg la fel ca versiunea Rust pentru consolă.
Diversele opțiuni de parolă sunt disponibile pentru a oferi diferitelor persoane diferite niveluri de acces.
În mod normal, toată lumea vă poate vedea fișierele doar conectându-vă la serverul dvs., dar dacă bifați „Activați fișierele private”; sub acestea, atunci nimeni nu va putea să vă vadă fișierele fără parola de citire.
Parola de scriere este folosită pentru a încărca, muta, copia sau șterge fișiere. Fără aceasta, nimeni altcineva nu poate face nimic sistemului dvs. în afară de vizualizarea fișierelor dvs.
Parola shell este inutilă pe aplicația mobilă, dar este foarte utilă pe sistemele de operare desktop și Termux pe Android. Vă permite să rulați comenzi de sistem arbitrare, ceea ce îl face foarte puternic și foarte periculos în același timp. Această caracteristică este dezactivată în mod implicit și trebuie să introduceți amândoi o parolă shell şi bifați "Activați comenzile shell" mai jos pentru a-l folosi.
Diferitele opțiuni de activare și dezactivare vă permit să alegeți ce pot face alte persoane sistemului dumneavoastră chiar şi când au deja parola corectă. Acestea suprascriu toate celelalte opțiuni, așa că dacă dezactivați copierea fișierelor, nimeni - nici măcar tu însuți - nu va putea copia fișiere.
Opțiunea specială „Dezactivare SSH Keycheck”; este pentru oameni ca mine care se plimbă în mod constant în timp ce sincronizează fișiere înainte și înapoi între diferite dispozitive. În mod normal, SSH va cere confirmare atunci când se conectează la un sistem a cărui adresă IP s-a schimbat, chiar dacă identitatea acelui sistem este deja cunoscută. Această opțiune vă va permite să sincronizați automat fișierele pe diferite rețele, fără a vă deplasa în consolă pentru a confirma conexiunile SSH. Utilizați-l cu grijă atunci când vă aflați în rețele pe care nu le controlați.
Spre deosebire de rularea în Termux sau într-un mediu desktop, aplicațiile iOS și Android nu au acces la un shell, rsync, ImageMagick sau FFMpeg, așa că toate funcțiile avansate de sincronizare și transcodare sunt dezactivate.
Deoarece sistemele de operare mobile pot distruge aplicațiile de fundal în orice moment, sarcinile automate cronometrate sunt, de asemenea, dezactivate.
Există posibile soluții pentru toate aceste aspecte, dar timpul necesar pentru integrarea acestor funcții este peste intenția mea în acest moment. Dacă cineva este interesat să mă plătească pentru a le adăuga, atunci vom vedea ce se întâmplă. 😁
Ca și în cazul tuturor proiectelor mele, codul sursă este găzduit pe Codeberg și poate fi gasit aici .
Pentru binarele precompilate, puteți răsfoiți directorul de lansări aici ...
Sau pur și simplu faceți clic pe linkurile de mai jos:
Datorită cerințelor de semnare Apple, utilizatorii iOS și OSX trebuie să aștepte ca aplicația să fie disponibilă în App Store sau să descarce codul sursă și să compilați propria versiune pentru dispozitivele dvs.
Deoarece aceasta este o versiune nouă, sunt sigur că vor exista o mulțime de erori și comportamente ciudate pe diferite sisteme. Dacă doriți să testați această aplicație beta pentru mine, vă rugăm să-mi trimiteți un e-mail cu dispozitivul dvs. și versiunea sistemului de operare și vă voi face să vă configurați pe TestFlight.
Distribuirea unei aplicații Flutter este de fapt mult mai complicată decât versiunea Rust, în care doar încarc un singur executabil și termin cu totul, așa că vă rog să înțelegeți când Apple durează trei săptămâni să-mi verifice aplicația și să o permită să intre în iOS App Store. Lucrurile ar trebui să fie mult mai ușoare atunci când Apple este obligat să permită aplicații terțe, conform hotărârii UE.
Ca întotdeauna, sper că această aplicație vă este utilă, iar dacă doriți să o personalizați pentru scopurile dvs., sunt întotdeauna disponibil ca consultant tehnic. A se distra!
Despre autor |
|
![]() |
Jim programează de când a primit un IBM PS/2 înapoi în anii '90. Până în prezent, el încă preferă să scrie manual HTML și SQL și se concentrează pe eficiență și corectitudine în munca sa. |