[PHP] skladiščenje naloženih datotek uporabnikov
 
php.programer20. sep 2011 21:31:09Pridružen od:
20. sep 2011
53 objav
+11-50
#1Pozdravljeni!

Zanima me, kako je najboljše "skladiščiti" naložene datoteke uporabnikov. Recimo, da

uporabniki naložijo 30.000 datotek vsega skupaj.

Zanima me, ali je dobro skladiščiti datoteke v eni mapi, ali recimo po 100 datotek v mapo

in se ustvarjajo dodatne mape, ko je recimo v eni mapi 100 datotek?

Če je naloženih datotek recimo 30.000, potem je na takšen način ustvarjenih 300 map. Ali je

to primerna rešitev?

kakšne so vaše izkušnje s tem in kaj predlagate (obstajajo kakšne rešitve)?

Gre za PHP.

Hvala za vaše odgovore.
všeč(0)ni všeč(0)spam(0)
 
php.programer20. sep 2011 22:02:55Pridružen od:
20. sep 2011
53 objav
+11-50
#2any idea? ali je čisto vredu, če se 30.000 datotek shranjuje v eno mapo?
všeč(0)ni všeč(0)spam(0)
 
Lucifix20. sep 2011 22:05:16Pridružen od:
14. okt 2008
557 objav
+219-90
#3
Zanima me, ali je dobro skladiščiti datoteke v eni mapi, ali recimo po 100 datotek v mapo

in se ustvarjajo dodatne mape, ko je recimo v eni mapi 100 datotek?

To verjetno ne bo najbolje, ker ne boš mogel preverjati v katero mapo spada določena datoteka.

Sam bi uporabil dva načina:
1. Solitranje pod datumu: mape se kreirajo pod datumih: 2011/09/20
Se pravi prva mapa je letnica, druga mesec in potem dan. Seveda pa bo to najlažje če imaš datoteke povezane z recimo mysql bazo, kjer je shranjen datum nalaganja

2. Solitanje po ID uporabniku. Čeprav zna tukaj nastati problem, če boš imel recimo 3.000 uporabnikov. To pa je kar velika količina map.

Toliko zaenkrat z moje strani, lahko pa da bo kdo drug imel dosti boljšo rešitev.
všeč(0)ni všeč(0)spam(0)
 
blackmamba20. sep 2011 22:06:48Pridružen od:
4. mar 2008
307 objav
+163-101
#4Sem imel primer, ko je imela spletna stran več kot 30000 slik v eni mapi.
Na strani so se slike normalno prikazovale, če sem pa s filebrowserjm hotel mapo odpret, sem se pa kar pošteno načakal.

Zmisli si nek simple sistem shranjevanja datotek.
npr: datoteka.jpg

Če boš naredil vsaj 1 podmapo npr. s prvo črko imena datoteke, boš pri 30k datotekah že veliko naredil.

primer:
Datoteka "datoteka.jpg" se shrani v mapo /d/datoteka.jpg

Lahko pa iz filenama zgeneriraš nek hash, kot to naredi phpThumb in poljubno razvejaš direktorijsko strukturo.

npr md5("datoteka.jpg") = d1148913c00c582e84b99a7857a97a1f

To se lahko shrani v /d/1/1/datoteka.jpg ,....

Lahko bi tudi generiral mape glede na datum vnosa datoteke.
/2011/9/datoteka.jpg

Lahko pa vse skupaj shraniš tudi v bazo.

Možnosti je veliko, lahko se za katero odločiš ali pa tudi ne.
Pri 30000 nebo konec sveta če imaš vse v 1 mapi :)
všeč(0)ni všeč(0)spam(0)
 
SpinX20. sep 2011 22:16:30Pridružen od:
17. mar 2007
2579 objav
+1323-14412
#5Odvisno kok si hočeš zagrenit življenje :)

Če delaš nek projektič katerega uspeh ni zagotovljen potem šopaj vse v eno mapo in se posveti drugim bolj pomembnim zadevam. Spremeniš lahko, ko boš imel res preveč datotek.

ali pa:

Mape in podmape glede na prva dva znaka v imenu datoteke.

Dobiš tako strukturo:

/a/b/abakus.jpg
/a/n/aneks.jpg
/a/v/avto.jpg
/a/1/a1.jpg

Tko mislim, da ima tudi Magento to rešeno.
všeč(0)ni všeč(0)spam(0)
Wordpress teme | Razrez designov: damjan@xhtml.si |
 
php.programer20. sep 2011 22:22:05Pridružen od:
20. sep 2011
53 objav
+11-50
#6hvala za odgovore!! bom uporabil, da se generirata podmapi na prva dva znaka!
všeč(0)ni všeč(0)spam(0)
 
Lucifix20. sep 2011 22:25:05Pridružen od:
14. okt 2008
557 objav
+219-90
#7Potem pa bodi samo pozoren, da boš pred tem preverjal imena datotek: #$%.jpg
všeč(0)ni všeč(0)spam(0)
 
Gogy20. sep 2011 23:44:03Pridružen od:
17. mar 2007
1575 objav
+1118-1718
#8Če gre za slike bo tako verjetno kar ok, sicer pa če delaš kaj drugega lahko delaš mesečne mape v smislu

201108
201109
201110
všeč(0)ni všeč(0)spam(0)
 
skyx21. sep 2011 02:00:19Pridružen od:
19. jul 2010
208 objav
+90-213
#9Pozoren bodi kater filesystem uporabljas na strezniku, ce je linux je ponavadi ext3.

Primer:
Za vsako podjetje ustvaris novo datoteko in imas okoli 90k podjetij, ti ze v naprej povem da ti ne bo dovolilo ustvariti toliko datotek + vse skupaj bo zelo stekalo oziroma sploh ne bos moral vec delati z mapo v kateri bi imel datoteke podjetij :)

Svetujem da dobro razmislis preden se lotis dela, ce bos imel velike stevilke :P

FAT32:
Maximum number of files: 268,435,437
Maximum file size: 4GB
maximum number of files per directory: 65535

NTFS:
Maximum number of files: 4,294,967,295
Maximum file size: 16TB currently (16EB theoretically)

Ext2:
Maximum number of files: 10¹⁸
Maximum file size: 2TB
theoretical file per directory limit: 1.3 × 10²⁰ files

Ext3:
Maximum number of files: number of bytes in volume/2¹³.
Maximum file size: 16GB (1KB block) to 2TB (4KB block)
The correct number is 31998 (ext3, max sub-directories per one directory).
všeč(0)ni všeč(0)spam(0)
Tudi Urban bloga ... PHP / MySQL / jQuery / SEO / Linux / FB
 
stran 1 od 1 |<<1>>|