Ukryty link do pliku - hash

0

Witam, chciałbym prosić o pomoc (lub jakieś info, ponieważ google mi nie za bardzo pomogło) w jaki sposób mogę uzyskać następujący efekt:

mam na serwerze plik: moj_serwer.pl/plik.avi

chcę, aby użytkownik mógł otworzyć plik poprzez link, który jest zaszyfrowany, znajdują się w nim różne informacje, generalnie za każdym wywołaniem link się zmienia, np: moj_serwer.pl/file/hashhashhash

Na serwerze w pliku PHP, ktory jest otwierany przez ten link (.htaccess) dokonuje się deszyfrowanie hashu i wyciągane jest z hashu m.in. info o pliku docelowym na serwerze. W jaki sposób mogę odesłać do użytkownika plik docelowy bez ujawniania jego ścieżki, tak, aby nie korzystać z rozwiązań typu fopen i wysyłania pliku po kawałku (ponieważ to obciąża serwer, a chodzi o duże pliki)? Pozdrawiam.

0

Zapomniałem dodać, że to nie musi być rozwiązanie oparte na PHP, jeżeli są jakieś dedykowane ku temu biblioteki dla PHP też mogą być... chodzi o serwer dedykowany więc z pełną możliwością konfiguracji.

0

W jaki sposób mogę odesłać do użytkownika plik docelowy bez ujawniania jego ścieżki, tak, aby nie korzystać z rozwiązań typu fopen i wysyłania pliku po kawałku (ponieważ to obciąża serwer, a chodzi o duże pliki)? Pozdrawiam.

Ale to jedyny sposób :P
Tj. dla uproszczenia użyj sobie readfile, który pilnuje, żeby plik wysyłać po kawałku, ale nie ładować go całego do pamięci (to samo możesz osiągnąć przez fopen). Nawet w dokumentacji pisze, że readfile jest bezpieczne dla dużych plików.

0

W sumie najprosciej byloby przez .htaccess, ale tam raczej nie ma mozliwosci uzycia php do deszyfracji... Zastanawiam sie tylko jak bardzo readfile bedzie obciazal serwer, jest to dedyk, ktorego lacze wyliczylem na jednoczesne obslugiwanie ok 1500 uzytkownikow (w downloadzie), wiec niechcialbym, zeby readfile zamulil procesor/ram.

0

nie powinno być takiego problemu, przemyśl lepiej żeby webserwer Ci obsłużył tyle połączeń ;)

0

Raczej obsluzy... Wylaczylem wszystkie niepotrzebne uslugi, calosc leci na dosyc lekkim apache (pod wzgledem jego konfiguracji), ale zastanawiam sie jeszcze na lighttpd. Dostep do MySQL znikomy, tylko do drobnych operacji, generalnie to serwer do skladowania plikow, bez obslugi "portalu".

0

serwer to przemyśl nginx, zazwyczaj to się stosuje do wydajnych rozwiązań. z webserwerem chodziło mi o to, czy w konfiguracji nie masz po prostu limitu połączeń do 100 np. (podobnie zresztą baza mysql)

0

na 99% nie ma limitów połączeń z serwerem i z MySQL-em, ale sprawdzę to jeszcze :) dzięki

0

jakieś limity są, skoryguj jakie.

ps. jakie ty masz tam łącze, że chcesz 1500 użytkowników na raz wpuszczać na ściąganie? Raczej nie większe niż 1Gbps. Czyli każdy user będzie miał 0,6 Mbps...

0

Mam łącze 2x 1 Gbps, co daje ok. 170 KB/s, więc wynik nie jest zły zważywszy na to, że nie sądzę, żeby łącze pracowało na ciągłym obciążeniu przez 1500 użytkowników. W razie czego dokupię po prostu dodatkowy serwer.

1 użytkowników online, w tym zalogowanych: 0, gości: 1