Czy udostępnianie plików znajomemu musi być takie trudne?

Przedstawiamy Pafera File Server, niewielki serwer Android, który przekształcił się w pełnoprawny menedżer plików, przeglądarkę pokazów slajdów i serwer multimediów
2023-04-17 22:41:37
👁️ 841
💬 0

Zawartość

  1. Wstęp
  2. Kandydaci
  3. Rozwiązanie
  4. Jak to działa?
  5. Instalowanie serwera
  6. Przeglądanie plików
  7. Menu systemowe
  8. Menu Plik
  9. Korzystanie z pokazu slajdów
  10. Konfiguracja
  11. Plany na przyszłość

Wstęp

Wow! To naprawdę fajne. Możesz się tym ze mną podzielić?

Jako osoba lubiąca technologię i ciągle odkrywająca nowe gadżety i aplikacje, nie potrafię sobie przypomnieć, ile razy usłyszałem tę samą wersję powyższego zwrotu na imprezach, spotkaniach, a nawet czekając na metro.

Jednakże z całą pewnością mogę sobie przypomnieć, ile razy doszło do następującej wymiany zdań:

Ja Jasne! Czego używasz?
Przyjaciel No cóż, mam aplikację A.
Ja Hmm... Nie mam tego. Masz aplikację B?
Przyjaciel Nie, ja też tego nie mam. Masz metodę C?
Ja Okej. Spróbujmy. Hmm... nie łączy się. Co powiesz na użycie metody D?
Przyjaciel To również nie działa.

Udostępnianie pliku było powszechnym zadaniem odkąd komputery stały się czymś w mrocznych czasach. Najpierw zapaleni programiści radośnie oglądali wydruki innych, potem stało się kopiowanie kart perforowanych. Później dyski magnetyczne stały się nowym gorącym trendem, a następnie technologia przeniosła się na dyski optyczne, napędy kolbowe i bezprzewodowe transfery.

Wygląda jednak na to, że po 70 latach nadal nie możemy dzielić się uroczymi filmikami z shibą bez pokonywania przeszkód, pobierania dziwnych aplikacji i uciekania się do powolnego transferu danych przez sieć bezprzewodową.

Co powiesz na to, żebyśmy spróbowali czegoś innego?

Kandydaci

Ale Jim, mówisz, że ja udostępniam pliki codziennie i nie mam z tym żadnych problemów?

Przyjrzyjmy się zatem powszechnie stosowanym metodom przesyłania plików.

Metoda Ponieść porażkę
1. Zrzut powietrzny Czy możesz AirDropować na telefon z Androidem? Okej!
2. NearBy Udostępnij Czy NearBy Share pliki na iPhone'a? Hmm...
3. AirDroid, SHAREit, Resilio Sync, Send Anywhere itp. Czy powiesz komuś na przystanku autobusowym, żeby szybko zainstalował tę samą aplikację co ty, tylko po to, żeby mógł otrzymać plik? No dobrze!
4. Program czatu Wiele programów czatowych ogranicza typy plików, które możesz wysyłać, kompresuje ponownie swoje filmy HD i musisz czekać, aż plik powoli się prześle, a następnie pobierze na urządzenie Twojego znajomego. Natrafiamy również na problem metody 3, gdzie musisz mieć zainstalowany ten sam program czatowy, aby przesyłać pliki.
5.Bluetooth Nawet przy użyciu technologii Bluetooth 5, przesyłanie filmu HD o rozmiarze 700 MiB jest jak oglądanie schnącej farby w wilgotnym klimacie Florydy.
6. E-mail Większość usług poczty elektronicznej ogranicza rozmiar załącznika, a jest to nawet wolniejsze niż przesyłanie przez programy czatowe. Jednak zawsze uważałem historie użytkowników iPhone'a wysyłających pliki do siebie, tylko po to, aby móc wydrukować dokument, za dość zabawne. ;)
7. DropBox, OneDrive itp. Występują te same problemy z przesyłaniem/pobieraniem, co w przypadku metod 3 i 4.
8. Dysk flash USB Właściwie całkiem wykonalne i szybkie, ale musisz pamiętać, aby nosić go przy sobie i mieć odpowiedni adapter do połączenia z urządzeniem znajomego. Ja sam zawsze noszę jeden w kieszeni, ale to raczej kwestia trafienia i chybienia, czy urządzenie osoby, z którą się dzielisz, będzie obsługiwać Twój dysk.
9. Poproś swojego przyjaciela, żeby zrobił zdjęcie/nagrał wideo ekranu Twojego telefonu za pomocą swojego aparatu! 100% skuteczność w przesyłaniu danych złej jakości!
Co się dzieje, gdy udostępnianie nie działa?

W tej chwili sprawy nie wyglądają dla nas najlepiej, prawda?

Rozwiązanie

Krótko mówiąc, aby znaleźć skuteczne i uniwersalne rozwiązanie, potrzebujemy czegoś, co

  1. Można używać na każdym urządzeniu
  2. Obsługuje bezpośrednie transfery WiFi bez konieczności przesyłania danych na serwer i z powrotem
  3. Nie skompresujemy naszego filmu 4K do 480p.
  4. Działa tam, gdzie nie ma nawet zasięgu telefonu

Gdyby tylko na każdym urządzeniu było zainstalowane coś, co umożliwiałoby dostęp do innych komputerów za pomocą powszechnie akceptowanego protokołu i pozwalało na przesyłanie i pobieranie plików...

Coś...

tak jak...

A...

przeglądarka internetowa!

Czy Windows CE obsługuje HTML 5? Super!

Jak to działa?

W jaki sposób przeglądarka internetowa umożliwia przesyłanie plików?

Są trzy podstawowe kroki.

  1. Podłącz oba urządzenia do tej samej sieci bezprzewodowej/punktu dostępowego
  2. Pozwól swojemu znajomemu wpisać adres Twojego urządzenia w jego przeglądarce
  3. Przeglądaj, oglądaj, pobieraj i przesyłaj tyle, ile chcesz
Nawet w 2023 roku korzystanie z hotspotu w telefonie nadal jest najszybszym sposobem przesyłania plików, zwłaszcza jeśli wybierasz się na wędrówkę po górach!

Zalety tego podejścia są następujące:

  1. Działa na każdym urządzeniu wyposażonym w przeglądarkę internetową (czyli praktycznie na wszystkim, co jest obecnie dostępne)
  2. Nie musisz klikać na każdy plik z osobna, naciskać wyślij i czekać, aż Twój znajomy zaakceptuje. Twój znajomy może sprawdzić, czego chce i pobrać pliki samodzielnie.
  3. Teraz cała grupa osób może przeglądać strony jednocześnie, zamiast przeglądać je pojedynczo.

Oczywiście, ten serwer nie będzie działać na iPhone'ach i iPadach, ponieważ Apple nie tylko ogranicza dostęp do systemu plików na urządzeniach z systemem iOS, ale również nie można uruchamiać programów dla Linuksa, jeśli nie masz uprawnień roota w Cydii.

Na szczęście, wszystko czego potrzebujesz to *jedno* urządzenie do uruchomienia serwera, więc Twoi znajomi Apple mogą nadal łączyć się z Twoim telefonem z Androidem bez żadnych problemów i nadal pobierać i przesyłać pliki. Poza tym, przyzwyczaili się już do tego, że nie mogą korzystać z innych systemów, ponieważ AirDrop działa tylko na urządzeniach Apple. ;)

Instalowanie serwera

Jeśli chodzi o szybkość i wydajność, Pafera File Server to aplikacja Linux/Windows napisana w Rust, więc niestety nie można jej po prostu pobrać ze sklepu z aplikacjami. Mogę później stworzyć wersję dla sklepu z aplikacjami w Kotlin, jeśli ktoś będzie chciał mi za nią zapłacić, ale jeśli nie jesteś Jerrym Maguire, na razie musisz zadowolić się wersją Rust.

Na szczęście wielu programistów open source, znacznie inteligentniejszych ode mnie, połączyło siły i stworzyło aplikacje, które pozwalają uruchamiać programy Linux na telefonie z Androidem, osiągając różne wyniki.

Dlatego wszystko, co musisz zrobić, to zainstalować Termux na swoim telefonie, skopiować i wkleić dwa polecenia, a następnie nacisnąć Enter kilka razy. To nie jest instalacja za jednym kliknięciem, ale to nie jest też SpaceX budujący StarShip, a uzyskasz dostęp do całego innego ekosystemu fajnych programów do zabawy.

To twój mózg pod wpływem narkotyków... eee... telefonu na Termux.

Instalacja przebiega następująco:

  1. Pobierz aplikację Termux z F-Droid Lub z Codeberg
  2. Uruchom aplikację
  3. Skopiuj i wklej poniższy kod do terminala i naciśnij enter.

    curl -O https://pafera.com/installfileserver.sh
    
  4. Skopiuj i wklej jeszcze jedno polecenie do terminala i naciśnij enter.

    bash installfileserver.sh
    
  5. Naciśnij Enter na klawiaturze, aby wyświetlić wszystkie monity pojawiające się podczas procesu uaktualniania pakietu.
  6. Poproś znajomego o wpisanie adresu URL wyświetlanego na ekranie.

    Znalezienie adresu URL wśród wyświetlanych informacji

Teraz, po zainstalowaniu serwera, możesz w każdej chwili zrezygnować z pracy, po prostu opuszczając sesję Termux.

A jeśli chcesz ponownie uruchomić serwer z hasłem umożliwiającym zmiany, wpisz

./paferafileserver password=yourpasswordhere

do Termux lub po prostu naciśnij strzałkę w górę, aby wybrać wcześniej wpisane polecenia.

Nie jest to tak proste, jak po prostu rozwinięcie powiadomień i kliknięcie „Udostępnianie w pobliżu”, ale ponadto nie uruchomisz serwera przypadkowo i otrzymasz o wiele więcej funkcji do wykorzystania.

Jeśli jesteś programistą Rust, instalacja będzie dla Ciebie znacznie łatwiejsza.

Wszystko co musisz zrobić to wpisać

cargo install paferafileserver

Poczekaj, aż ładunek zrobi swoje i voila! Gotowe!

Jeśli chcesz uruchomić Pafera File Server w systemie Windows lub Linux, poniżej znajdziesz gotowe pliki binarne 7-Zip archiwa.

  1. Linux (amd64)
  2. Termux na Androidzie 7+
  3. Linux (armv7h dla Debiana na Userland - Android 5 i 6)
  4. Samodzielny plik exe systemu Windows
  5. Kompletny system Windows (w tym FFMpeg i ImageMagick)

Przeglądanie plików

Gdy Twojemu znajomemu uda się wpisać adres URL Twojego serwera do swojej przeglądarki, jego telefon powinien wyglądać mniej więcej tak.

Strona główna serwera plików Pafera

Jeśli nie widzisz żadnych plików, upewnij się, że Twój znajomy ma włączoną obsługę JavaScript, ponieważ używamy skryptów do sortowania i wyświetlania plików.

W skrócie, zaczynając od lewego górnego rogu, znajdziemy przycisk menu systemowego, przycisk ostatnio używanych plików i przycisk katalogu domowego.

Kliknięcie na pliki

Kliknięcie na miniaturkę dowolnego obrazu spowoduje rozpoczęcie pokazu slajdów, natomiast kliknięcie na nazwę pliku spowoduje jego pobranie.

Kliknięcie przycisku menu pliku spowoduje otwarcie menu działań dla tego pliku, natomiast kliknięcie kwadratu pod nim spowoduje wybranie pliku.

Aby szybko wybrać zakres plików, kliknij przycisk wyboru pierwszego pliku, a następnie kliknij przycisk menu ostatniego pliku i wybierz opcję „Zaznacz tutaj”.

Menu systemowe

Menu systemowe

Zarówno Wyszukiwanie, jak i Wyszukiwanie głębokie (skróty klawiszowe t i f) umożliwiają wpisanie kilku liter i wyświetlenie wszystkich plików zawierających te litery.

Różnica polega na tym, że normalne wyszukiwanie obejmuje tylko pliki w bieżącym folderze, natomiast wyszukiwanie głębokie obejmuje również wszystkie foldery w tym folderze.

Pokaz slajdów i głęboki pokaz slajdów (klawisze skrótu z i x) działają na tej samej zasadzie. Wybierz ten, który chcesz, w zależności od tego, czy chcesz uwzględnić obrazy we wszystkich folderach w tym folderze, czy nie.

Przełącz widok (skrót klawiszowy v) – zmienia normalny widok szczegółów na widok ikon wszystkich obrazów i filmów w tym folderze.

Sortuj (klawisz skrótu s) pozwala wybrać sposób sortowania plików. Możesz wybrać sortowanie według nazwy pliku, rozmiaru, daty i różnicy czasu. Osobiście wolę widok różnicy czasu, ponieważ „Pięć minut temu” jest dla mnie o wiele bardziej przydatne niż „14:55”.

Widok Ostatnie pliki (skrót klawiszowy e) pokaże Ci ostatnio zmienione 512 plików w bieżącym folderze i wszystkie foldery w tym folderze. Uważaj, używając tego widoku dla swojego folderu domowego, ponieważ sprawdzenie wszystkich plików może zająć trochę czasu, jeśli masz setki tysięcy małych plików do sprawdzenia.

Ustaw hasło (klawisz skrótu w) pozwoli Twojemu znajomemu wpisać hasło, aby modyfikować, przesyłać i usuwać pliki. Bez tego hasła nikt nie może nic zmienić na Twoim telefonie, więc trzymaj go w bezpiecznym miejscu. Możesz ustawić je albo w wierszu poleceń, wpisując password=yaddayaddayadda lub w paferafileserver.cfg używając formatu

{
  "password":"yaddayaddayadda"
}

Nowy folder (skrót klawiszowy o) poprosi o podanie nazwy nowego folderu, który zostanie utworzony w bieżącym folderze.

Pokaż ukryte pliki (skrót klawiszowy i) przełącza wyświetlanie plików i folderów, których nazwy zaczynają się od kropki. Jest to sposób używany w systemie Unix do wskazania, że dane pliki nie powinny być normalnie widoczne dla użytkownika.

Włączenie funkcji Pobieranie za pomocą jednego kliknięcia (skrót klawiaturowy k) umożliwi natychmiastowe pobranie pliku poprzez kliknięcie go, zamiast wyświetlania go w przeglądarce.

Pokaż klawisze skrótu (klawisz skrótu h) — pokaże Ci, które klawisze mogą być używane zarówno w widoku folderów, jak i w widoku pokazu slajdów.

Zoom In (klawisz skrótu .) i Zoom Out (klawisz skrótu ,) zmienią rozmiar wszystkiego na ekranie. Użyj ich, aby dostosować swoją stronę, jeśli domyślne rozmiary Twojego systemu nie odpowiadają Twoim upodobaniom.

Menu Plik

Menu Pliku

Wybierz tutaj pozwala wybrać wszystkie pliki pomiędzy tymi, które wybrałeś wcześniej i tymi, które wybrałeś teraz. Jest to bardzo przydatne jako zamiennik, aby uniknąć zastępowania menu prawego przycisku myszy do kopiowania linków zarówno na komputerze stacjonarnym, jak i na urządzeniu mobilnym.

Zaznacz wszystko (klawisz skrótu a) i Zaznacz nic (klawisz skrótu n) są oczywiste. Uważaj jednak, gdy używasz ich do usuwania wszystkich plików, które Naprawdę Chcę usunąć wszystkie pliki.

Naciśnij przycisk Wyślij (skrót klawiszowy g), aby otworzyć okno skanowania, w którym możesz zobaczyć wszystkie pozostałe urządzenia w swojej sieci, na których działa serwer plików Pafera.

Wysyłanie plików na inny serwer

Należy pamiętać, że wszystkie urządzenia muszą znajdować się w tej samej podsieci i działać na tym samym porcie, więc jeśli jesteś na 192.168.0.100, a urządzenie, do którego próbujesz wysłać dane, znajduje się na 192.168.1.100, skaner nie wykryje drugiego urządzenia. Oczywiście zawsze możesz po prostu zalogować się na serwerze tego urządzenia i przesłać pliki za pomocą przeglądarki.

Dla uproszczenia wszystkie pliki, które wysyłasz do innego urządzenia, są gromadzone w folderze o nazwie „Odebrane” w katalogu głównym serwera. Mogę to później zmienić, ale na razie wygodnie jest, aby wszystkie nowe pliki pojawiały się w tym samym folderze, do którego możesz je później przenieść w odpowiednie miejsce.

Nowy plik w folderze Otrzymane

Pobierz (klawisz skrótu l), Zmień nazwę (klawisz skrótu r), Przenieś (klawisz skrótu m), Kopiuj (klawisz skrótu c), Usuń (klawisz skrótu d) i Trwałe usuwanie (p) wszystkie mogą działać na wielu plikach jednocześnie, z wyjątkiem pobierania w przeglądarkach mobilnych, gdzie można pobrać tylko jeden plik na raz. Uważaj, ponieważ Trwałe usuwanie naprawdę oznacza Stały Usuń. Zawsze przechowuj kopię ważnych plików na innym urządzeniu, zanim dotkniesz przycisku usuwania.

Funkcja Undelete (klawisz skrótu u) jest używana tylko w przypadku plików, które zostały usunięte jeden raz i mają rozszerzenie „.deleted”. nie mogę przywrócić trwale usunięte pliki. Te nie są przypinane. Przeminęły. Tych plików już nie ma. Są byłymi plikami.

Korzystanie z pokazu slajdów

Interfejs pokazu slajdów. Wszystko na dole jest klikalne.

Jedną z najważniejszych funkcji, o które ludzie zawsze proszą w przeglądarce plików, jest dobry pokaz slajdów. Kiedy nosisz w telefonie 6000 zdjęć swojego syna, aby pokazać je przypadkowym nieznajomym, nietrudno zrozumieć, dlaczego. ;) Większość klientów SMB nie ma podglądu obrazów ani pokazów slajdów, więc próba znalezienia konkretnego obrazu za pomocą aplikacji iPhone Files jest dość frustrująca.

Funkcję pokazu slajdów w Pafera File Server można aktywować na kilka sposobów:

  1. Kliknij miniaturę obrazu.
  2. Wybierz opcję „Pokaz slajdów” z menu systemowego.
  3. Wybierz opcję „Szczegółowy pokaz slajdów” z menu systemowego.
  4. Wykonaj wyszukiwanie lub wyszukiwanie głębokie, aby wybrać pliki, które chcesz wyświetlić, i Następnie Kliknij na miniaturkę pierwszego obrazka.

Niezależnie od tego, w jaki sposób rozpoczniesz pokaz slajdów, na samej górze będzie znajdował się przycisk usuwania z nazwą bieżącego obrazu, a na dole pasek narzędzi zawierający funkcje losowania, obrotu, wyjścia, przewijania do przodu i do tyłu.

Jeśli chcesz przejść do konkretnego numeru obrazu, po prostu kliknij pozycję obrazu na pasku narzędzi, wpisz interesujący Cię numer i kontynuuj.

Wybór numeru, do którego chcesz przejść

Pokaz slajdów obsługuje gesty przesuwania, które są moją preferowaną metodą nawigacji w telefonie. Wystarczy lekko przesunąć kciukiem w lewo, aby przejść do poprzedniego obrazu, w prawo, aby przejść do następnego obrazu, w górę, aby usunąć bieżący obraz, lub w dół, aby wyjść z pokazu slajdów.

Jeśli jednak korzystasz z laptopa lub masz klawiaturę Bluetooth podłączoną do telefonu, korzystanie z pokazu slajdów staje się jeszcze łatwiejsze.

Strzałka w lewo Poprzedni obraz
Strzałka w prawo Następny obraz
Strzałka w górę Usuń obraz
Strzałka w dół/Escape Wyjdź z pokazu slajdów
R Losowy obraz
G Przejdź do numeru obrazu
Q Obróć o 90 stopni przeciwnie do ruchu wskazówek zegara
mi Obróć o 90 stopni zgodnie z ruchem wskazówek zegara

Konfiguracja

Pafera File Server można skonfigurować z pliku JSON o nazwie paferafileserver.cfg w tym samym folderze lub z argumentów wiersza poleceń w formie klucz=wartość. Jeśli oba są określone, argumenty wiersza poleceń zastąpią ustawienia pliku konfiguracyjnego.

Typowy wiersz poleceń to

paferafileserver [hostname=localhost] [serverroot=/home/jim] [password=password] [ip=0.0.0.0] [port=9999]

W związku z tym, jeśli chcesz udostępnić katalog zdjęć Jima wszystkim użytkownikom portu 5000, powinieneś użyć

paferafileserver serverroot=/home/jim/Pictures port=5000

Jeśli nie podasz serverroot, domyślnie będzie to Twój katalog domowy.

Jeśli nie podasz adresu IP i portu, wartością domyślną będzie 0.0.0.0:9999.

Dodatkowo, w wierszu poleceń można wpisać następujące opcje, aby wyłączyć pewne funkcje, nawet jeśli użytkownik ma prawidłowe hasło.

disabledelete
disablerename
disablemove
disablecopy
disablenewfolder
disabledelete
disablepermanentdelete
disablesend
disableupload

Wszystkie argumenty wiersza poleceń można również określić w pliku JSON o nazwie paferafileserver.cfg w bieżącym folderze, takim jak

{
  "hostname":               "JimsLaptop",
  "password":               "SecretPassword12345",
  "disabledelete":          1,
  "disablepermanentdelete": 1
}

Możesz wybrać metodę, która najbardziej Ci odpowiada.

W przypadku systemu Windows często najłatwiej jest utworzyć skrót do pliku wykonywalnego i określić w nim swoje argumenty.

W przypadku Termux na Androidzie najłatwiejszym sposobem uruchomienia pliku wykonywalnego jest zainstalowanie aplikacji Termux Widget z F-Droid i skonfigurowanie wiersza poleceń w skrypcie widżetu.

Plany na przyszłość

W tej chwili nie planujemy dalszych zmian, ponieważ był to po prostu zabawny projekt wprowadzający, mający na celu zabawę z Rustem, ale gdyby ktoś inny miał

  1. Napisz wersje w językach Kotlin/Swift, które udostępnisz w sklepach z aplikacjami
  2. Przetłumacz tę aplikację na wiele języków
  3. Utwórz różne motywy CSS
  4. Wdrożenie algorytmu podobnego do rsync do tworzenia kopii zapasowych i przywracania
  5. Albo cokolwiek innego, co przyjdzie Ci do głowy

Z pewnością powitałbym wszelkie dodatki do tego prostego projektu.

Jak zawsze, mam nadzieję, że ta aplikacja okaże się dla Was przydatna, a jeśli chcecie dostosować ją do własnych celów, zawsze jestem dostępny jako konsultant techniczny. Bawcie się dobrze!

O autorze

Jim programuje odkąd dostał IBM PS/2 w latach 90. Do dziś woli pisać HTML i SQL ręcznie, a w swojej pracy skupia się na wydajności i poprawności.