interesuje mnie pewna kwestia. istnieje coraz wiecej serwisow, gdzie za dostep do plikow placi sie.
przykladowo place za dostep do plikowni, napotykam na ciekawy plik, sciagam go i... ten plik jest jak gdyby specjalnie generowany dla mnie.
zamiast nazwy np. blabla.zip pojawia sie np. blabla_05983483549.zip. I taki plik jest dostepny np. przez 10 godzin, a potem juz go nie mozna sciagnac.
W jaki sposob takie cos zrobic, aby to mialo rece i nogi ? (czyli: jak wygenerowac dynamicznie plik z takim jakims losowym ciagiem znakow | jak zrobic aby link byl aktywny przez 10 godzin)
-------------------------------------------------------------
mam takie rozwiazanie, ale to chyba troche lopatologicznie.
1. standardowo dane o plikach sa w bazie danych. powiedzmy:
tabela pliki: id|nazwa|data, np. 13|bla.zip|14022004
na serwerze, pliki leza w katalogu "pliki".
2. normalnie uzytkownik sciagajac plik widzi link np.
http://blabla.pl/download.php?file_id=13
za pomoca id plik jest identyfikowany w bazie danych wiec skrypt "wie", ze to chodzi o plik bla.zip i wyrzuca uzytkownikowi na ekranie ten plik.
3. no to moznaby zrobic tak, ze jak user kliknie na ten link i skrypt zidentyfikuje, ze to chodzi o plik bla.zip no to skrypt sam na serwerze zrobi kopie tego pliku (bla.zip) ze zmieniona nazwa na bla_6564645365345.zip (nazwa pliku + losowy string) i wrzuci ten plik np. do katalogu pliki_temp
uzytkownik dostanie adres do pliku
http://blabla.pl/pliki_temp/bla_6564645365345.zip
i sobie moze sciagnac taki plik
4. w cronie ustawiam, ze np. bedzie sprawdzany katalog pliki_temp i beda z niego wywalane pliki, ktorych czas utworzenia jest dluzszy niz np. 10 godzin. wiec de facto ten link bedzie aktualny przez 10 godzin. potem juz pliku nie bedzie.
takie jest moje rozwiazanie. jednak czy nie ma czegos prostszego, gustowniejszego ? bo mam wrazenie, ze to troche tak lopatologicznie rozwiazane. przy duzej liczbie plikow i duzej liczbie takich generowanych plikow mozna skutecznie zapchac serwer. moze ktos wie w jakis sposob to jest robione bardziej hmm profesjonalnie ?