Gå til innhold

galleriscript på server 1, lagre bildene på server2!


Anbefalte innlegg

Har puslet i hop et lite galleriscript. Men, jeg ønsker at bildene skal lagres på en annen webserver, en den som har selveste internett siden. Grunnen bygger på at server #1 er rask, men har begrenset lagringsplass. Mens server #2 er treg, men har enorm lagringsplass.

 

Håper noen som vet et lite triks for noe slik som dette. :)

Lenke til kommentar
Videoannonse
Annonse

Har puslet i hop et lite galleriscript. Men, jeg ønsker at bildene skal lagres på en annen webserver, en den som har selveste internett siden. Grunnen bygger på at server #1 er rask, men har begrenset lagringsplass. Mens server #2 er treg, men har enorm lagringsplass.

 

Håper noen som vet et lite triks for noe slik som dette. :)

Er server #2 virkelig så treig at den ikke kan gi ut innholdet selv? Isåfall så har du vel egentlig veldig få løsninger. a) Utvid lagringsplassen på server #1 eller b) del mappen med bildene over internettverket og monter det på server #1.

 

Installer MySQL på server #2 og koble til den databasen fra server #1?

... og hva skal poenget med det være? Bildene vil jo ta langt mer plass enn databasen.
Lenke til kommentar

SweetM...

Du har vistnok missforstått noe. Er ikke ute etter hastighet på galleriet. Har MYE plass på server 2. Men, tar evigheter å laste fulle sider der fra. Så, at "BARE" galleriet blir tregt, er jo helt ok for meg :)

Websiden ønsker jeg å ha en helt opptimalisert hastighet på, har heller ikke nok båndbredde til å hoste store gallerier der.

 

Idè. Koble script1 (på sv1), opp mot script2 (på sv2), som du da laster bildet opp, mens skript1 lager bilde info i sv1 sin SQLdatabase. Det gjelder da, hvordan jeg skal gå frem for å gjøre dette.. oen innslag?

Lenke til kommentar

Finnes utrolig mange måter å gjøre noe slikt på, men jeg ser for meg at noe i følgende dur vil være enklest.

 

Når brukeren laster opp et bilde, gjør alt som om du hadde kun en server. Legg bilde i en passende mappe og legg litt metainformasjon i databasen. Når du derimot skal printe URLen til bildet, bytt ut hostname. På den andre serveren kjører du et script som henter over og sletter alle nye bilder. Det vil gi et lite delay, men det kan jo alltids løses med litt kreativitet.

Lenke til kommentar

Installer MySQL på server #2 og koble til den databasen fra server #1?

... og hva skal poenget med det være? Bildene vil jo ta langt mer plass enn databasen.

Poenget er at det er enklest å ha en database på den trege serveren som den kjappe serveren kan koble seg til fra galleriscriptet.

Altså, ikke mase med hundre mapper, undermapper og filer som skal opprettes, modifiseres og slettes. Slippe å tenke på at det og det skal kobles sammen sånn og sånn; slik og slik for at det skal bli sikkert, kjapt og alt du kan tenke deg av mas.

$link = mysql_connect('mysql.server2treg.glefs', 'mysql_user', 'mysql_password');
...blabla...
lastopp();
...blabla...
lastned();
...blabla...
mysql_close($link);

Jeg prøvde lykken med Google og fikk frem denne artikkelen - les i hvert fall introduksjonen.

Lenke til kommentar

Bilder i MySQL? Er du stein? Det vil innebære et par hundre spørringer for å vise et fint og stort album. Binaries i databaser har sitt bruksområde, men dette er ikke et av dem. Litt av poenget er jo at bildene skal hentes direkte fra server #2, uten å måtte gå gjennom server #1. Det muliggjør enkel lastbalansering og man kan fortsatt bruke software slik som f.eks. Squid for å optimalisere.

Lenke til kommentar
Many of the ney sayers will have you believe that storing of images or other binary data creates too much overhead. A large database can be stored on a RAW partition and infact be faster as it has no filesystem overhead to contend with. Some would say that access is slow when SELECTing from the data base, but most of these issues are caused by coders doing things like:

SELECT * FROM image_table

when all they need is image ID.

 

Det jeg leser av trådstarter er at han vil ha scriptet på server 1 og bildene på server 2, men om jeg feiltolker med den "steine" hjernen min, så er det vel ikke et altfor stort problem å bare laste opp scriptet på server 2 og linke til det?

 

- Takk.

Lenke til kommentar

Du tolker og forstår trådstarter helt korrekt. Eksempelet ditt viser en måte hvor man kan lagre en fil et sted og hente det ut annet sted. Problemet med en slik løsning, hvilket også gjør databaselagring av bildene til et problem, er at bildet serveres fra en server som må spørre enn annen server om det. Rett og slett et ekstra og fullstendig unødvendig ledd, som ikke bare kaster bort dyrebare ressurser, men også bidrar til høyere latency. Når man skal servere store mengder data fordelt over veldig mange filer, så er man simpelthen nødt til å holde det enklest mulig. Og det enkleste vil være å bruke Apache med en cache proxy foran. Slik ytelse klarer du ikke å nærme deg med et PHP-script.

 

(Merk: Når jeg sier enkelt, så mener jeg ikke enkelt som i at dette er lett å forstå og lett å sette opp, men enkelt, som i minst mulig morsomme og fancy løsninger. Enkelt, som i bruk av allerede eksisterende løsninger for å håndtere de mest slitsomme oppgavene.)

Endret av Jonas
Lenke til kommentar

Når jeg laster opp bilder, i albummet så bruker jeg nå en slik funksjon:

move_uploaded_file($photo_pic['tmp_name'], GALLERY.$photo_id.".jpg");

Dette er for å begrense til .jpg-bilder. Slik at jeg kan lage thumbnails av de.

 

Men, altså, jeg ser noen måter å gjøre tinga på.. Men, forstår ikke dem. Håper at noen kan komme med en grei løsning.

Lenke til kommentar

Når jeg laster opp bilder, i albummet så bruker jeg nå en slik funksjon:

move_uploaded_file($photo_pic['tmp_name'], GALLERY.$photo_id.".jpg");

Dette er for å begrense til .jpg-bilder. Slik at jeg kan lage thumbnails av de.

 

Men, altså, jeg ser noen måter å gjøre tinga på.. Men, forstår ikke dem. Håper at noen kan komme med en grei løsning.

 

Må bare spørre, du "renamer" altså bare bildene du flytter. Hva om jeg laster opp et PNG bilde, renamer du det bare til "jpg" ?

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...