Jump to content
php.lv forumi

failu glabāšana


vitalja

Recommended Posts

  • Replies 82
  • Created
  • Last Reply

Top Posters In This Topic

Mkdir, move_upload_file un tamlīzdīgs bullshit ir kkas, ko tev uzspiež glabāšana filesistēmā un ir incidental complexity.

 

Ja mēs pieņemam, ka viena rindiņa ir **jebkurā valodā**, uz **jebkura backenda** (filesistēma, datubāze utml.), kādi ir plusi un mīnusi katram?

Jautrības labad.. 

 

Lielākajai daļai piesaukto (storage) risinājumu šādā vai tādā veidā ir pieejams (ja gribās svešvārdu terminus - Posix compliant) failsistēmas interfeiss, piemēram, S3 - s3fs, mysql - mysqlfs, mongodb/gridfs-fuse u.t.t.

 

Līdz ar to "mkdir() bullshits" kodā var būt viens un tas pats, taču aplikācijai/php kodam transparenti rezultēties pavisam dažādos izpildījumos..

Attiecīgi nebūt nav obligāti jākodē (vai jāparedz) kaut kādi N dažādi backendi vai koda blāķi kāda specifiskam (piemēram ko darīt, ja vairs nav vēlme maksāt par S3, bet kods pilns ar "stumšanu uz bucketiem") variantam.

 

 

Tāpat arī ar CDN (ja protams ar to nav domāts būvēt kaut kādus savus vipendronus), tad mūsdienās visi CDN pakalpojumu sniedzēji (Cloudflare, Akamai, Limelight utt) vairāk vai mazāk piedāvā transparentu sava produkta izmantošanu un aplikācijai nekas nav jāmaina vai papildus jākodē (<flameon> jo programmētāji ir dārgāki (un darba rezultāti vairāk neparedzami) nekā viens sistēmas administrators</flameoff>).

 

 

 

>Izmantot vienu un to pašu failsistēmu gan kodam, gan static ir kkas tāds, par ko vajadzētu griezt pirkstus nost.

Absolute bullshit.

 

Par šo atbildi gan nedaudz brīnos, proti, ja ir iespēja nodalīt statiskos (lietotāju uploadētu saturu), tad to, manuprāt, noteikti vajag darīt.

 

Ir bijuši pietiekami daudz gadījumu/piemēru, kad nekorektu (vai pat ar standarta noklusēto ( https://bugzilla.redhat.com/show_bug.cgi?id=885839)) konfigurāciju webserveri piemēram ļauj izpildīt (pietam "validā") .jpg failā esošu php kodu utt.

Protams, ar pienācīgu apstrādi var no visa kā izvairīties, bet nu ..

Link to comment
Share on other sites

>Par šo atbildi gan nedaudz brīnos, proti, ja ir iespēja nodalīt statiskos (lietotāju uploadētu saturu), tad to, manuprāt, noteikti vajag darīt.

Viss atkarīgs no projekta lieluma un svarīguma. daGrevis, acīmredzot, strādā pie Googles mēroga projektiem, kur tiek izmantoti entie serveri, katrs dedicated savai lietai, bet reālajā dzīvē tādu projektu ir mazāk par vienu procentu no visiem projektiem. Iespējams, ka vajadzētu būt vairāk, bet katrā ziņā galīgi ne visiem projektiem tas ir nepieciešams.

Edited by jurchiks
Link to comment
Share on other sites

 

Viss atkarīgs no projekta lieluma un svarīguma. daGrevis, acīmredzot, strādā pie Googles mēroga projektiem, kur tiek izmantoti entie serveri, katrs dedicated savai lietai

 Nu es jau tev teicu, ka pēc katra ieteikumiem var pateikt, ar cik nopietniem projektiem cilvēks ņemās.

 

Par "reālo dzīvi"  kaut kad drīzumā uzrakstīšu atsevišķu topiku.

Link to comment
Share on other sites

Jauki, bet ieteikt citiem lietas, kas nav piemērotas viņu situācijai, nav prāta darbs.

Piemēram, priekš kam kaut kādam mu online forumam speciālu serveri lietotāju signature/avatar bilžu glabāšanai? Tas ir piemērs no reālās dzīves.

 Tieši uz šo jautājumu arī atbildēšu, kad būs vairāk brīvs laiks.

Link to comment
Share on other sites

>Par šo atbildi gan nedaudz brīnos, proti, ja ir iespēja nodalīt statiskos (lietotāju uploadētu saturu), tad to, manuprāt, noteikti vajag darīt.

Viss atkarīgs no projekta lieluma un svarīguma. daGrevis, acīmredzot, strādā pie Googles mēroga projektiem, kur tiek izmantoti entie serveri, katrs dedicated savai liet

Bet tas (atrunas par projekta lielumu, kas, manuprāt, nebija nekur norādīts) nekādi tāpat nettaisno atbildi - "Absolute bullshit.", ja vien tas nebija domāts par "pirkstu griezšanu", jo savādāk ar šādu atrunu var tikpat labi teikt, ka kamdēļ vajag kaut kādai "labi ja 1 lietotājs nedēļā" lapai, piemēram, formu mainīgo pārbaudi utt .. iespēja, ka "sūds trāpīs ventilatorā" tomēr pastāv.

 

Līdz ar to tādi 100% apgalvojumi nav īsti korekti (imho) t.i. labāk ir piedāvāt dažādus/vairākus risinājumus ar saviem plusiem un mīnusiem (ātri, lēti, kvalitatīvi - 2 no 3) un tad lai katrs pats izsver un izvēlas (foruma būtība) :)

Link to comment
Share on other sites

>(ātri, lēti, kvalitatīvi - 2 no 3)

"kvalitatīvi" neiet kopā ne ar vienu no pārējiem diviem, ja vien tev nav vesela armija programmētāju vai arī tavs "ātri" nav diez ko ātrs.

Kāpec neiet?

 

kvalitatīvi+lēti - nebūs ātri (piemērs var būt opensource projekti, kas var developēties gadiem var patērēt daudz cilvēkstundu/resursu, taču rezultāti (bieži) ir diezgan labi/kvalitatīvi (labāki par par komerciāliem risinājumiem) un gala lietotājs par to principā nemaksā)

kvalitatīvi+ātri - lielākoties noteikti nebūs lēti  (protams arī aklai vistai grauds gadās) ..

 

 

 

"Ej dirst, codez. Kvalitāte maksā naudu UN prasa laiku."

 

Var piekrist, ja viss ir no nulles, taču mūsdienās reti kur var vairs izgudrot riteni t.i. vairāk vai mazāk visus risinājumus var nopirkt uzreiz/gatavus/ar minimālu pielāgošanu/maksimālām opcijām/onsite supportu utt untājoprojām. Lielie biznesi laika taupīšanas nolūkos vienkārši uzreiz nopērk visu tavu kompaniju ar visiem darbiniekiem / patentiem utt (kas notiek tālāk, cits jautājums).

 

 

.. tāpēc arī ir izvēlies 2 no trim.

Link to comment
Share on other sites

Nu labi, open-source projekti ir cita lieta, bet komerciāli produkti, kuri maksā lēti...

"kvalitatīvi+ātri" tikai virspusēji būs kvalitatīvi. Vai arī no šablona taisīts, bet tas neder stipri kustomizētiem pasūtījumiem.

 

@codez - izlasi vēlreiz pirmo daļu manam iepriekšējam postam.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...