[ S A J A @ 02.04.2019. 15:43 ] @
Pravim sistem gde će korisnici moći da uploaduju razne fajlove, od slika do raznih dokumenata. Od preporuka za to na internetu sam video samo "drži fajlove na disku, ne u bazi" i to nije sporno. Mislim da je glupost držati fajlove u bazi. Međutim, ja imam drugi problem. Meni treba veći prostor za te fajlove i ne odgovara mi da bude na istom serveru gde je i sajt. Pošto diskovi na VPS-ovima nisu nešto veliki, retko prelaze 200 GB a meni treba značajno više, na Hetzneru ima da se zakupi poseban storage server 10 TB za 40e i to mi je nekako taman za sada ;)

Sad mi samo trebaju smernice kako je najbolje uraditi arhitekturu. Aplikacija ima klijentski deo i serverski deo koji je samo REST Api u PHP-u. I sad tu imam dve varijante:

1. U klijent aplikaciju (Javascript SPA) da šaljem direktan link i da se fajlovi preuzimaju sa storage servera kad zatrebaju. Ovo mi je nekako nebezbedno jer onda na klijent strani moram da pošaljem login podatke za storage server pa onda nekako po folderima da krijem fajlove...

2. Da Api server isporuči fajl tako što bi ga prvo preuzeo sa storage servera, otprilike echo file_get_contents(...) pa inicirao download. To sam i probao i odlično radi. Tu je prednost što storage nije dostupan direktno ali mi se opet ne sviđa ideja da kod poziva prvo prebacujem fajl sa jednog servera na drugi, učitavam u memoriju pa isporučujem na download. Ako tu bude bilo mnogo zahteva, celo to prebacivanje sa servera na server će mi praviti opterećenje i sad nisam pametan šta raditi.

Prva varijanta mi ne deluje bezbedna a druga kao da pravi nepotreban load.
Testirao sam i brzinu obe varijante, fajl koji se direktno preuzima mnogo brže započne download nego ovaj što prethodno putuje sa servera na server.

Jel postoji možda neka treća varijanta za ovu situaciju?

[ CyrusXxXxX @ 02.04.2019. 15:59 ] @
Da li može da ti završi posao amazon s3 skladište recimo?

Amazon S3
[ S A J A @ 02.04.2019. 16:09 ] @
Citat:
CyrusXxXxX: Da li može da ti završi posao amazon s3 skladište recimo?

Amazon S3


Verujem da da, samo što izuvaju sa cenama ;)
[ CoyoteKG @ 02.04.2019. 16:41 ] @
Moze sigurno sve sto planiras, cak i api za autentifikaciju imas..

Dropbox radi iskljucivo sa AWS servisima. Iskoristili API i ulepsali malo te funkcionalnosti koje AWS nudi. Od autentifikacije, do permisija, verzionisanja fajlova i slicno.

10TB je sigurno puno skuplje nego kod Hetznera
Ali da ne zvucim kao reklama, placas samo ono sto koristis... :D

Ovde imas i cene koje puno variraju u odnosu na redundantnost, frekventnost i sl. Imas i lifecycle da podesis da fajlovi posle nekog vremena prelaze iz jednog u drugi tip S3
https://aws.amazon.com/s3/


https://docs.aws.amazon.com/s3/index.html

https://docs.aws.amazon.com/Am...st/dev/RESTAuthentication.html


Edit: sad vidim da imaju gomilu novih tipova skladistenja.... izbacuju svaki dan nesto


[Ovu poruku je menjao CoyoteKG dana 02.04.2019. u 18:02 GMT+1]
[ Shadowed @ 02.04.2019. 17:02 ] @
U drugoj varijanti nemoj da ucitavas ceo fajl pa da ga saljes nego prosledjuj. Stedis i memoriju i vreme i odziv.
[ Deunan @ 02.04.2019. 23:35 ] @
Ako su veliki fajlovi, moguce da ce biti problem sa memorijom. Mozes da ih iseckas, ali nije mnogo bolje...

Nisi rekao koji server koristis.
Za nginx ima X-accel internal redirekcija. U principu, proveris zahtev za fajl (sliku), pa preusmeris lokalni proxy poziv. Klijent skida direktno, a ne pokazuje mu zasticen path. Mislim da ne mora ni da bude u public folderu.
Pogledaj ovaj link: link

Imao je i za apache mod_xsendfile. Ali mislim da je deprecated.
[ CoyoteKG @ 03.04.2019. 06:30 ] @
ja sam nekako pogresno zakljucio da pokretac teme pita za S3, zato napisah taj post...
[ S A J A @ 03.04.2019. 09:23 ] @
Citat:
CoyoteKG: ja sam nekako pogresno zakljucio da pokretac teme pita za S3, zato napisah taj post...


Znam za S3 kao varijantu, i naravno slične kao što su Google Cloud i Azure ali...

1. Gledam koliko je moguće da izbegnem takve servise jer se kasnije desi, posle x godina, da provališ kako si se previše vezao (ono, malo po malo) i da ti je posle teško da ih se otarasiš. A ti veliki sistemi upravo i najviše prihoda generišu od velikih firmi koje ne mogu tek tako da se odlepe od njih.

2. Papareno su skupi. Evo recimo ako na Hetzneru uzmeš dedicated storage server, dobiješ
Xeon E5-1650 v3
256 GB DDR4 ECC
15 x 10 TB SATA 6 Gb/s 7200 rpm
Hardware RAID Controller

Za 260€ mesečno !

Na onim servisima možeš da sanjaš toliki prostor. Naravno, ovde ostaje pitanje bekapa ali recimo uzmeš dva takva servera i opet bi prošao višestruko jeftinije. Ne verujem ni tamo da je bekap baš jeftin.

Dakle, provalio sam, ako se orjentišeš na "metal", možeš značajno da uštediš u odnosu na uzimanje "integrisanih rešenja". Hardver je postao bagatelno jeftin.
[ Predrag Supurovic @ 03.04.2019. 10:31 ] @
Ja sam svojevremno tako držao datoteke na ekstrnom klaudu i brzo popio penala od Gugla.
Nešto mu se nije svidelo što su PDF datoteke na drugoj adresi

Radilo se o sajtu novine i svaki broj je objavljivan kao PDF a pšto je toga bilo mnogo prebacili smo datoteke na klaud da ne bi trošili hosting. Izgleda da ej smetalo što je tako veliki broj linkova išlo ka eksternom sajtu.
[ S A J A @ 03.04.2019. 17:09 ] @
Citat:
Predrag Supurovic: Ja sam svojevremno tako držao datoteke na ekstrnom klaudu i brzo popio penala od Gugla.


Hm... to je nezgodno. Jel taj fajl server bio na drugom domenu ili istom? Ako bi stavio da file server bude samo poddomen istog domena, to valjda ne bi smetalo. Ne vidim što bi insistirali da baš sve stoji na istom serveru.
[ mjanjic @ 03.04.2019. 18:38 ] @
Pa ništa, uzme i web hosting kod Hetzner-a, i bude sve lepo na jednom domenu/poddomenu :)
[ CoyoteKG @ 03.04.2019. 21:00 ] @
Kako onda CDN radi? Često se može videti da su statički fajlovi čak na drugom linku, ne poddomenu...

Ne znam baš detalje o tome, ali koliko sam ja shvatio, to se rešava sa CORS odnosno cross-origin.

[ Predrag Supurovic @ 03.04.2019. 21:05 ] @
Citat:
S A J A:
Citat:
Predrag Supurovic: Ja sam svojevremno tako držao datoteke na ekstrnom klaudu i brzo popio penala od Gugla.


Hm... to je nezgodno. Jel taj fajl server bio na drugom domenu ili istom? Ako bi stavio da file server bude samo poddomen istog domena, to valjda ne bi smetalo. Ne vidim što bi insistirali da baš sve stoji na istom serveru.



Bio je drugi domen.