Jak przesyłać duże pliki?

Czasem mamy potrzebę dostarczenia np. backupu strony do kogoś gdzieś tam w Internetach. Mały backup to mały problem można go puścić mailem ale co zrobić jak backup ma kilkaset mega? a na dodatek ma trafić do kilku kilkunastu różnych odbiorców?

Możesz też od ręki zobaczyć podsumowanie.

Można duży plik wystawić przez FTP

Wymaga to posiadania konta na jakimś serwerze najlepiej przeznaczonego do tego celu. Trzeba udostępnić wszystkim do tego ftp login i hasło a wtedy ktoś może skasować nasz plik i kolejny pliku już nie pobierze, nie mówiąc że jakiś „żartowniś” może skasować nasz plik i podstawić własny o tej samej nazwie (jeśli dajemy jedne dane dostępowe wielu osobom i nie dopracujemy reguł pobierania). Koniecznie trzeba takie konto ftp odseparować od innych danych i zasobów, do których nie chcemy dawać obcym dostępu. Generalnie jest trochę konfigurowania zakładania kont itd.

Dodatkowo udostępnianie przez FTP ma tę wadę że wymaga zazwyczaj od użytkownika posiadania dodatkowego oprogramowania do transferu plików przez protokół FTP. Można to obejść dając odpowiednio spreparowanego linka
ftp://nazwa_użytkownika:hasło@serwerftp.cośtam/ścieżka/plik.zip
ale to rozwiązanie niestety działa tylko w części przeglądarek www.

Oczywiście plik wystawiamy przez szyfrowane FTPS, bo o bezpieczeństwo trzeba dbać ciągle nie tylko czasami. Używanie FTP bez szyfrowania jest słabe i w złym guście.

Można udostępnić obszerny plik przez WWW.

Protokół http nie został zaprojektowany do takiego transferu plików ale sprawdza się w tej roli.

Można wrzucić plik gdzieś na serwer w ogólnie dostępnym
kat4logu_z-ab5urdalna_nazw4/3ardzo-ukryty_plik.zip
i cieszyć się zabezpieczeniem w stylu głębokie ukrycie. Odbiorcom podajesz wtedy tylko link do pobrania w stylu https://twoja-domena.cośtam/ kat4logu_z-ab5urdalna_nazw4/3ardzo-ukryty_plik.zip

Takie rozwiązanie jakoś działa, tylko że jak wycieknie link do pliku (np. google sobie go zindeksuje) to każdy będzie mógł ten plik pobrać (ale przynajmniej nikt go nie skasuje i nie podmieni). Przy takim sposobie udostępniania warto wdrożyć równocześnie blokowanie dostępu do tego katalogu z plikiem za pomocą .htaccess

AuthName "katalog z tajnymi plikami"
AuthType Basic
AuthUserFile /sciezka/najlepiej/przed/katalogiem/widocznym/z/poziomu/www/.htpasswd
Require valid-user

Przy zastosowaniu hasłowania katalogu można sobie odpuścić kombinowanie z udziwnioną nazwą katalogu i pliku.

Musisz mieć na uwadze że nie u wszystkich dostawców hostingu hasło na katalog zadziała, że są hostingi które od ręki mają na takie potrzeby przygotowany katalog, ale są również hostingi które wręcz zabraniają takiego sposobu ich używania :/

Ja osobiście preferuję właśnie taką formę udostępniania plików, jest bezpieczna, nie tracę władzy nad plikiem i stosunkowo mało uciążliwa w przygotowaniu. Dość wygodna dla odbiorcy nie potrzebuje dodatkowego softu typu klient ftp.

Można użyć zewnętrznych usług typu WeTransfer

Przez stronę www wrzucasz plik lub katalog, podajesz maila nadawcy, maila odbiorcy i koniec. Zostało tylko sprawdzić pocztę. W mailu który dostanie nadawca i odbiorca jest link do pobierania pliku który potem rozdajesz wszystkim zainteresowanym. Link prowadzi do spakowanego archiwum i każdy znający link może pobierać plik przez tydzień. Potem plik jest kasowany. To IMHO najmniej uciążliwe rozwiązanie ale niestety nie jest wolne od wielu wad.

Przykładowo jeśli w bazie masz dane osobowe (np. wysyłasz newslettera, albo prowadzisz forum czy sklep) to prawo w większości wypadków nie pozwala na ich transfer poza UE bez dodatkowych zgód itd.

Wysłane pliki nie mają żadnej ochrony, nie są szyfrowane ani chronione przed dostępem innych osób niż te którym wyślemy linka.

Dane które chcesz udostępnić wrzucasz na serwer nad którym nie panujesz 🙁 więc nie masz pewności co do losu swoich plików podobno kasują po tygodniu ale czy to prawda?. Nie wiesz czy ktoś w hameryce czy gdzieś-tam te pliki przegląda czy nie. Nie wiesz czy ich nie podmieni, nie wzbogaci reklamą czy czymś innym. Na pewno korzystając z takich serwisów będziesz profilowany (tak samo jak i odbiorcy pliku) bo przecież skoro usługa jest bezpłatna to czymś innym za nią płacisz, najczęściej płacisz prywatnością.

Fakt że wygodnie się z tego rozwiązania korzysta bo zaznaczasz tylko plik albo cały katalog a przykładowy WeTransfer sam zrobi z paczki wysłanych plików jednego zipa. Dodatkowo dostaniesz informację że ktoś plik pobrał jeśli go pobierze co jest czasem przydatne. Ja osobiście mam negatywne podejście do takich rozwiązań bo zbytnio tracę władzę nad udostępnianym plikiem.

Oczywiście WeTransfer jest tylko przykładem na bazie pytania z QA taką samą rolę może spełnić google drive, office 365 czy dropbox tyle że wtedy mamy teoretycznie większy wpływ na to co się dzieje z plikiem. Możemy go skasować po godzinie, albo podmienić jak jest błędny, lepiej ustawić dostępność itd.

Podsumowanie

Udostępnianie plików przez FTP to trochę konfiguracji po stronie serwera. Trzeba założyć konto dodatkowemu użytkownikowi czy konta wielu użytkownikom (nie każdy hosting umożliwia tworzenie dodatkowych kont ftp), zadbać o to żeby dostęp miał tylko do tego co chcemy mu udostępnić. Rozwiązanie to jest mało przyjazne dla użytkownika bo wymaga aby miał program do pobierania plików przez protokół FTP (i umiał go obsłużyć). Generalnie jest to mało wygodne i dla jednorazowego udostępnienia pliku to sporo zachodu.

Udostępnianie plików przez www jest wygodne dla użytkownika. Praktycznie klika w podesłanego linka i plik już się pobiera. W wersji sensowniejszej (z zabezpieczeniem dostępu do katalogu) użytkownik wpisuje dodatkowo login i hasło (co raczej nie jest jakieś bolesne dla niego). Z naszej perspektywy takie rozwiązanie wymaga trochę pracy bo trzeba założyć loginy i hasła ale pracy jest zdecydowanie mniej niż przy konfiguracji ftp.

Bardzo istotne jest że w powyższych rozwiązaniach nie tracimy panowania nad plikiem (w przypadku FTP zazwyczaj można ustawić prawa na „tylko do pobrania”). Te dwa rozwiązania można używać z danymi osobowymi (oczywiście jeśli hosting spełnia wymogi RODO)

Udostępnianie przez sharing plików np. WeTransfer jest najwygodniejsze dla nas i dla odbiorców. Nie obciąża naszych zasobów, nie wymaga prac związanych z konfiguracją ale też jest najpodlejsze w kwestii bezpieczeństwa i ochrony danych. Pozwala na profilowanie nas i odbiorców. Jeśli już chcemy tak udostępniać pliki to warto rozważyć udostępnianie przez drive googla lub office 365 bo tu przynajmniej wiadomo kto stoi za takim rozwiązaniem.

We wszystkich wypadkach warto udostępniany plik przygotować.

  • Nadajmy mu nazwę jasno opisująca jego zawartość tak żeby odbiorca wiedział co pobiera a potem nie zagubił go na dysku pomiędzy archiwum.zip a archiwum(1).zip.
  • Jeśli mamy udostępnić jakiś katalog to spakujmy go do jednego pliku. Zyskamy dzięki temu na czasie i na zasobach (nasi odbiorcy też zyskają).
  • Wystawiany na świat plik warto za hasłować bo nikt poza nami nie zadba o naszą prywatność. To co jest wystawione w internecie, to może być dostępne dla zbyt wielu osób, a nawet proste hasło typu „duda” na zipie zniechęci tych mniej ciekawskich.
  • Jeśli plik kompresujemy to używajmy popularnego standardu i nie wymagającego płatnego oprogramowania jak np. szatański pomiot czyli pliki typu *.rar

Przydatne:

Wątek w QA: Jak stworzyć kopię strony i jak ją bezpiecznie wysłać?