Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Gdzie przechowywać pliki w frameworku
Forum PHP.pl > Forum > Przedszkole
geek
Witam,

od pewnego czasu zajmuję się nauką frameworka CodeIgniter. Po drodze wpadłem na pewno czysto teoretyczne pytanie: Gdzie powinienem przechowywać folder z moimi plikami w strukturze frameworka? W pliku application, a może w folderze bazowym?

Za pomoc serdecznie dziękuję, a obsługę proszę o dodanie punktów osobą zasługującym na to wink.gif
mokry
Najczęściej stosowane są dwa rozwiązania (drugie baedziej bezpieczne).
1. Katalog files w katalogu głównym, w którym przechowujesz pliki w odpowiednich katalogach.
2. Pliki ładujesz powyżej katalogu dostępnego publicznie i serwujesz je za pomocą PHP. Dzięki temu nie ma możliwości dobrania się bezpośrednio do pliku w celu jego pobrania, a w skrypcie serwującym pliki możesz sprawdzić, czy dany user ma odpowiednie uprawnienia do ich pobrania.

Dobrą sprawą przy uploadzie plików jest zamiana ich nazw na sumy kontrolne md5 ich zawartości. Dzięki temu możesz zapobiec sytuacji, w której dany plik wgrywany jest więcej niż jeden raz na serwer. Usuwasz go dopiero w przypadku gdy z bazy leci ostatni rekord z nagłówkiem tego pliku.
geek
Jako, że nie planuję przechowywać jakiś ważniejszych plików skorzystam z rozwiązania nr 1. Wielkie dzięki wink.gif
markonix
Cytat(mokry @ 28.05.2013, 14:59:49 ) *
Dobrą sprawą przy uploadzie plików jest zamiana ich nazw na sumy kontrolne md5 ich zawartości. Dzięki temu możesz zapobiec sytuacji, w której dany plik wgrywany jest więcej niż jeden raz na serwer. Usuwasz go dopiero w przypadku gdy z bazy leci ostatni rekord z nagłówkiem tego pliku.

Zastanowiłbym się nad prawdopodobieństwem kolizji sum kontrolnych, pewnie prawdopodobieństwo bardzo małe ale przy bardzo dużych systemach raczej brane pod uwagę.
webdice
Cytat(markonix @ 28.05.2013, 20:19:41 ) *
Zastanowiłbym się nad prawdopodobieństwem kolizji sum kontrolnych, pewnie prawdopodobieństwo bardzo małe ale przy bardzo dużych systemach raczej brane pod uwagę.


W tym wypadku trzeba całkowicie wyeliminować prawdopodobieństwo kolizji, które wcale małe nie jest.

PS. Pliku trzymałbym bezwzględnie powyżej document root i nie chodzi tylko o to że znajdują tam newralgiczne pliki, a z powodu stosowania dobrych praktyk.
mokry
Tak zgadza się, że prawdopodobieństwo wystąpienia dwóch jednakowych sum kontrolnych jest możliwe, jednak szczerze powiedziawszy nie zdarzyła mi się jeszcze taka sytuacja na systemie zawierającym ponad 120TB danych. Fakt faktem, że dodatkowo porównujemy rozmiar i na taki wypadek dane zapisywane są na innej macierzy z informacją w Oracle, ale dotychczas nie zdarzył się taki przypadek.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.