Kavacky Posted November 18, 2014 Report Share Posted November 18, 2014 (edited) Principā jau visi varianti ir vairāk vai mazāk pareizi un vieni pareizāki par otriem, atkarībā no konteksta un daudziem citiem parametriem, bet pēc tā, ko kurš iesaka, var spriest par to, pie kādām sistēmām katrs ikdienā strādā. Jā, uzskatāmi parāda, kuram ir kaut kāda prakse ar attiecīgām sistēmām un izpratne par tēmu, lai neietektu šajā gadījumā šaut ar lielgabalu pa zvirbuļiem, vai kuram ir prasts fanbojisms "es dzirdēju, ka krutie džeki dala visu klasteros, CDN, yo". Tas nav raķešu inženieris, kurš jautājumā, kā saķīlēt Deltu, atbild "kādu vēl mopēdu, tak raķetes jau sen izgudrotas, uz ciema diseni ir jālido caur Kosmosu; mopēds ir lohiem, ja". Nevaru saprast! Šis forums ir domāts konstruktīvām diskusijām, vai aktivitātēm, kuras iekļauj mērlenti un peni. Ja tev penis ir derīgs varbūt vienīgi, lai salīdzinātu subatomic līmenī, tad ne visiem tā ir, ja? :D Edited November 18, 2014 by Kavacky Quote Link to comment Share on other sites More sharing options...
F3llony Posted November 18, 2014 Report Share Posted November 18, 2014 Ooo jāa, F3llony labs garīgais :D Tagad točna neviens vairs neiedomāsies failus glabāt datubāzē Nu izņemot tos, kuriem patīk, ka Ieva [jūzers] ir neapmierināta un pasta sistēma [serveri] ir pārslogota. Quote Link to comment Share on other sites More sharing options...
codez Posted November 18, 2014 Report Share Posted November 18, 2014 Uzrkastīt failu glabāšanu CDN ir ātrāk kā taisīt daudzlīmeņu folderu lokālu glabāšanu. Parasti katrai normālai cloud glabātuvei nāk līdzi savs libs un tev kodā ir jāieraksta 3 rindiņas, lai saglabātu failu CDN-ā. Tātad, kāpēc netaisīt CDN variantu, ja: - to ir ātrāk uzrakstīt - tas nenoslogo lieki serveri un neapdraud to (gadījums, kad uploado palaižamus failus un palaiž) - tas strādā ātrāk klientam, jo CDNiem parasti ir efektīvi geokeši. - tas skeilojas labāk - rīki, lai menidžētu pēc tam tos failus ir labāki Kāpēc izvēlēties speciāli sliktāku variantu tikai tāpēc, ka tas ir pietiekams? Quote Link to comment Share on other sites More sharing options...
jurchiks Posted November 18, 2014 Report Share Posted November 18, 2014 (edited) Bet tu jau pats atbildēji uz šo jautājumu - tāpēc, ka tas ir pietiekams. Edited November 18, 2014 by jurchiks Quote Link to comment Share on other sites More sharing options...
codez Posted November 18, 2014 Report Share Posted November 18, 2014 Taisīt sarežģītāku un sliktāku variantu tāpēc, ka tas ir pietiekami? Quote Link to comment Share on other sites More sharing options...
briedis Posted November 18, 2014 Report Share Posted November 18, 2014 // Insertojam faila ierakstu db, dabūjam unikālu id $hash = md5($id); $mape = "/storage/" . $hash[0] . "/". $hash[1] . "/" . $hash[2] . "/"; mkdir($mape, true); // Izveidojam visu koku move_uploaded_file($_FILES['file'], $mape . $hash); Zinot faila ID vienmēr varam dabūt ceļu uz failu. Baigais čakars......... Quote Link to comment Share on other sites More sharing options...
codez Posted November 18, 2014 Report Share Posted November 18, 2014 Kur tiks glabāti faili? Publiskā web mapē? Ko darīt, ja dažiem failiem jābūt publiskiem, bet dažiem nē? Quote Link to comment Share on other sites More sharing options...
jurchiks Posted November 18, 2014 Report Share Posted November 18, 2014 Par to domās tad, kad vajadzēs. Quote Link to comment Share on other sites More sharing options...
Kasspars Posted November 18, 2014 Report Share Posted November 18, 2014 Kur tiks glabāti faili? Publiskā web mapē? Ko darīt, ja dažiem failiem jābūt publiskiem, bet dažiem nē? Ja lokālajā variantā publiskos un nepubliskos failus norealizēt ir vienkārši, tad kā to var izdarīt ar CDN? Visi faili, kas ir cdnā ir pieejami visiem! Vai arī es kaut ko nezinu?? Quote Link to comment Share on other sites More sharing options...
F3llony Posted November 18, 2014 Report Share Posted November 18, 2014 (edited) Kasspars, depends no CDN. Parasti ir gan access kontroles. Piemēram, S3 visi bucketi ir privāti pēc noklusējuma. Tad cloudfront var visādus brīnumus organizēt, parakstīti url utt. Bet codez atkal maļ. CDN nav ātrāk integrēt, ja vien Tu to nedari tā, pa roku galam. Acīmredzot tā tu dari, jā. Jā, un bucketos tu lādē failus čerez ko, nepalaižamu klientside? BS arguments, nevietā. Ja es varu randomā izpildīt kaut kādus failus uz tavas kastes caur HTTP, tev jau ir problēma. Geokeši? Kas tāds? Tu domāji edge dns? Nu jā, daudz tev to vajag, ja tavam bļogam ir 5 apmeklētaji no Liepājas. Tas nu gan ir arguments. Jebkas <10TB trafikā skeilojas labi arī virtuvē zem galda. Tur nevajag CDN. ???!!! Kāda velna pēc tu "menedžē" failus CDN? Jebkuram nopietnam projektam CDN use vispār ir asinhrons process, kas sevī iesaista local upload, MQ un ielādi 1 vai vairākos CDN. Tas nav ne vienkārši, ne 3 rindas. Tas protams, ja tavs projekts nav ķep ļep sabakstīts un CDN ielāde ir prefetch. Un par tiem failiem, nekādi faili nekādās publiskajās direktorijās nedrīkst parādīties, nekādā formā. Proxy + ACL. Edited November 18, 2014 by F3llony Quote Link to comment Share on other sites More sharing options...
codez Posted November 18, 2014 Report Share Posted November 18, 2014 CDN nav ātrāk integrēt, ja vien Tu to nedari tā, pa roku galam. Acīmredzot tā tu dari, jā. Nē, CDN ir ātrāk integrēt, jo tas tam ir paredzēts un daudzas no standarta problēmām jau ir atrisinātas. Jā, un bucketos tu lādē failus čerez ko, nepalaižamu klientside? BS arguments, nevietā. Ja es varu randomā izpildīt kaut kādus failus uz tavas kastes caur HTTP, tev jau ir problēma. Ne viens vien redzēts ar līkām rokām. Tad jau labāk izvēlēties metodi, kur līkas rokas nevar nodarīt skādi. Tas nu gan ir arguments. Jebkas <10TB trafikā skeilojas labi arī virtuvē zem galda. Tur nevajag CDN. Teiksim tu esi uztaisījis savas sētas fullhd video uploada lapu, kurā katrs lietotājs uploado pāris GB un ir pāris simti lietotāji, kas tā dara un kopā tev jārēķinās ar 1-5 TB video. Atrodi man tagad VPS vai hostingu, kur tu varēsi uploadot 5 TB ar failiem (Unlimited storage par 1,5$/mēnesī hostingi neskaitās :) ) Jebkuram nopietnam projektam CDN use vispār ir asinhrons process, kas sevī iesaista local upload, MQ un ielādi 1 vai vairākos CDN. Tas nav ne vienkārši, ne 3 rindas. Tas protams, ja tavs projekts nav ķep ļep sabakstīts un CDN ielāde ir prefetch. Nu tas ir tavā PHP. Scala, Play un Akka, piemēram, pēc dabas jau ir asinhroni un visu šo asinhroni bez problēmām var darīt bez nekādiem papildus MQ, uztaisi darbībai Future vai Actor-u un aidā - papildus 1 - 5 rindiņas koda. Un par tiem failiem, nekādi faili nekādās publiskajās direktorijās nedrīkst parādīties, nekādā formā. Proxy + ACL. Opā, tu manam blogam ar 5 lietotājiem no Liepājas taisies piedāvāt vēl ieviest papildus softus stekā, konfigurēt tos, apgūt, ja nemāku, utt.? Izrādās, ka vienkāršais variants, lai būtu pareizs, nav nemaz tik vienkāršs. Quote Link to comment Share on other sites More sharing options...
F3llony Posted November 18, 2014 Report Share Posted November 18, 2014 (edited) Nu tas ir tavā PHP. Scala, Play un Akka, piemēram, pēc dabas jau ir asinhroni un visu šo asinhroni bez problēmām var darīt bez nekādiem papildus MQ, uztaisi darbībai Future vai Actor-u un aidā - papildus 1 - 5 rindiņas koda. Kāds sakars ar to, kādā valodā vai platformā? Asinhrons ir un paliek asinhrons - nemaina tas neko, vai tev prefetch un statusu callback ir realizēts PHP, Javā, Skalā, Nodē vai vienalga kādā valodā un freimworkā - tas, ka Skala ir "asinhrona", problēmu neatrisina. Un MQ netiek lietots tikai tāpēc, ka PHP nebūtu thredu vai forku. Also, C# arī ir async modelis. OMG OMG taisam visu dotnetā. Opā, tu manam blogam ar 5 lietotājiem no Liepājas taisies piedāvāt vēl ieviest papildus softus stekā, konfigurēt tos, apgūt, ja nemāku, utt.? Izrādās, ka vienkāršais variants, lai būtu pareizs, nav nemaz tik vienkāršs. Codez random words. Korelācija starp tavu komentāru un manu komentāru ir nulle. Un es neesmu vainīgs, ka tavs freimworks šmeimworks neprot ar to tikt galā by default. Man tas viss izskatās šādi (cdn gadījumā, ar visu async virtuvi): <?php if ($file->uploaded()) { $file->set_destination('fs|cdn|whatever'); $file->set_access_policy(FileStore::POLICY_PUBLIC); // vai $file->set_owner(FileStore::OWNER_CURRENT_USER); $file->set_access_policy(FileStore::POLICY_OWNER); // vai $file->set_owner(FileStore::OWNER_CURRENT_USER); $file->set_access_policy(FileStore::POLICY_OWNER_GROUP); // vai $file->set_owner(FileStore::OWNER_USER_GROUP); $file->set_access_policy(FileStore::POLICY_OWNER); // vai $file->set_access_policy('custom'); $file->store(); } Viss. Fails tur, kur vajag, vienalga, CDN, failu sistēma, velns zina kas. Katram storage punktam ir jau gatavas procedūras, ACL implementēts kodolā, viss konfigurējams kā vien ienāk prātā, $file->getUrl() atdod publisku URL, kas ir proxy, kas pārbauda permisijas, liek headerus proxy cache, paraksta redirektus uz CDN ja vajag un dara visu pārējo. Policy var būt jebkas - privāts, PUBLIC, 'custom' profils definēts konfigā. And again, vienalga, vai tā ir skala vai php, labs risinājums un slikts risinājums tipu nemaina atkarībā no platformas. Teiksim tu esi uztaisījis savas sētas fullhd video uploada lapu, kurā katrs lietotājs uploado pāris GB un ir pāris simti lietotāji, kas tā dara un kopā tev jārēķinās ar 1-5 TB video.Atrodi man tagad VPS vai hostingu, kur tu varēsi uploadot 5 TB ar failiem (Unlimited storage par 1,5$/mēnesī hostingi neskaitās :) ) Tu jauc CDN un block/file/object storage. CDN, ja esi piemirsis, ir Content Delivery/Distribution Network, kur viena no primārajām iezīmēm ir nogādāt kontentu tuvāk lietotājam izdalot saturu edge nodēs. Šajā gadījumā diez vai tie pāris simti lietotāju ir pa 10 valstīm un dublēt saturu edgē's nav nepieciešams. P.S. transcode that shit. 4000k kaķiem nav vajadzīgs. It īpaši, ja visiem tiem taviem 100 lietotājiem ir noutbuki ar 720p ekrāniem mehehehe. Edited November 18, 2014 by F3llony Quote Link to comment Share on other sites More sharing options...
briedis Posted November 18, 2014 Report Share Posted November 18, 2014 Piemēram, Laravelam (jaunākai versijai, kas nāk tikai ārā) ir failsistēmas interfeiss, configā norādi draiveri - vai faili ir turpat uz hdd, vai kādā mākoņrisinājumā (atliek ievadīt paroles). Tā kā tehniski pilnībā atkrīt jautājums, kā apakšā tas ir realizēts... Quote Link to comment Share on other sites More sharing options...
codez Posted November 19, 2014 Report Share Posted November 19, 2014 F3llony, kur tavā piemērā ir asinhronais MQ, kurš nogādā failu uz Cloud storage vai, piemēram, resizo bildes utml.? briedi, F3llony, anyway, beidzot jūs sākat dot normālus padomus kā faili ir jāuploado, ka jāizmanto abstrakcijas, kur nav svarīgi, kāds ir store apakšā un, ka jāizmanto FW/bibliotēkas, kuras atbalsta uzreiz dažāda veida store-s. Tagad tik pilnus piemērus 2-3 freimworkiem vai bibliotēkām un jautājums būs atbildēts. Quote Link to comment Share on other sites More sharing options...
e-remit Posted November 19, 2014 Report Share Posted November 19, 2014 Šīs lapas augšā redzams, kas tā par sadaļu: php.lv forumi → PHP → Iesācējiem Saprotu, ka daži te talantīgi, tāpēc liekas, ka iesācējam uzreiz jāmāk orientēties visos freimworkos, izmantojot visas iespējamās abstrakcijas, bet, varbūt tomēr labāk iesācēju sadaļā ierādīt vienkāršāko ceļu ar parastu move_uploaded_file(), bet tālākos "vienkāršos" variantus viņš pats ar laiku apgūs? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.