[php] Upload naar remote webserver

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • radem205
  • Registratie: Juni 2002
  • Laatst online: 02-02-2022
Hey,

Allereerst: Ik weet niet precies waar dit onderwerp thuis hoort, het kan namelijk zowel een programmeer uitdaging zijn als een webserver uitdaging.

Ik heb momenteel 2 VPS servers ter beschikking. Nu heb ik een website op VPS 1 staan met daarop vele audiobestanden. De load van deze server wordt soms redelijk hoog wanneer aanspraak gemaakt wordt op deze audiobestanden.

Mijn idee is om de audiobestanden op de VPS 2 te zetten en deze server dus alleen te gebruiken om de audiobestanden op te slaan en op te vragen.

Nu moeten bezoekers van de website (op VPS 1) audiobestanden kunnen uploaden naar VPS 2 en de gegevens dienen vervolgens op te slaan in de mysql database op VPS 1.

Mijn vraag is nu hoe ik bestanden kan uploaden naar een remote webserver (waar ik dus volledige toegang over heb).

Op internet heb ik een aantal oplossingen gezien waar men gebruik maakt van cURL en een FTP connectie in PHP. Echter vraag ik mij af of er geen betere oplossingen zijn om bestanden naar een remote webserver te uploaden.

Bedankt voor je reactie!

Acties:
  • 0 Henk 'm!

Verwijderd

welke load is er hoog?

wanneer de CPU load hoog is kun je beter kijken waar dat vandaan komt. Oplossingen met bestanden op een andere server en daarom meer processen draaien om de bestanden te lezen/schrijven geeft ook weer meer cpu load.

misschien eens kijken om iets met load balancing te doen?

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
radem205 schreef op vrijdag 10 september 2010 @ 09:23:
Op internet heb ik een aantal oplossingen gezien waar men gebruik maakt van cURL en een FTP connectie in PHP. Echter vraag ik mij af of er geen betere oplossingen zijn om bestanden naar een remote webserver te uploaden.
Nja, het File Transfer Protocol is redelijk bedoeld voor File Transfers dus wat dat betreft zit je wel goed. Je kunt ook een VPN maken of een tunneltje bouwen op de remote server een share mounten ofzo en op die manier "in het lokale netwerk" een kopie maken. En zo zijn er nog wel 151 manieren te bedenken. Ik zou eens kijken naar wat er binnen je capaciteit ligt om te bouwen.
Verwijderd schreef op vrijdag 10 september 2010 @ 09:32:

misschien eens kijken om iets met load balancing te doen?
8)7 Dat is 'ie nou toch juist aan 't doen? Taken/bestanden uitbesteden aan een tweede server. Voila, load-balancing.
radem205 schreef op vrijdag 10 september 2010 @ 09:23:
Allereerst: Ik weet niet precies waar dit onderwerp thuis hoort, het kan namelijk zowel een programmeer uitdaging zijn als een webserver uitdaging.
Waar hoort mijn topic?
Ik zie (nog) geen concreet programmeerprobleem? Ik kijk het nog even aan welke kant het topic op gaat.

[ Voor 35% gewijzigd door RobIII op 10-09-2010 09:37 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Hoe snel is de verbinding tussen de servers? Wil je de client laten wachten op het kopiëren van het op VPS1 geüploade bestand naar VPS2?

Zo niet dan zul je eerst moeten laten uploaden naar een tijdelijke directory op VPS1 en de inhoud hiervan periodiek verplaatsen naar VPS2.

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


Acties:
  • 0 Henk 'm!

  • radem205
  • Registratie: Juni 2002
  • Laatst online: 02-02-2022
CodeCaster schreef op vrijdag 10 september 2010 @ 09:35:
Hoe snel is de verbinding tussen de servers? Wil je de client laten wachten op het kopiëren van het op VPS1 geüploade bestand naar VPS2?

Zo niet dan zul je eerst moeten laten uploaden naar een tijdelijke directory op VPS1 en de inhoud hiervan periodiek verplaatsen naar VPS2.
Hmm, eigenlijk wil ik de client niet laten wachten op het kopieren van VPS1 naar VPS2, echter moeten de geuploade bestanden wel direct beschikbaar zijn voor de client.

Misschien eerst uploaden op VPS 1 en de geuploade bestanden periodiek (via cron of zoiets) verplaatsen naar VPS2. Alleen moet ik dan bijhouden welke bestanden op welke server staan.

Acties:
  • 0 Henk 'm!

  • McKaamos
  • Registratie: Maart 2002
  • Niet online

McKaamos

Master of the Edit-button

Gaat het via een webinterface? Dan laat je toch gewoon je HTML form direct met een action naar de andere server sturen, waar dan weer een scriptje draait die je terugstuurt naar de pagina op server 1?

Iemand een Tina2 in de aanbieding?


Acties:
  • 0 Henk 'm!

  • Wolfboy
  • Registratie: Januari 2001
  • Niet online

Wolfboy

ubi dubium ibi libertas

Misschien is het totaal geen optie hoor, maar als de servers in een eigen netwerk staan zou je eventueel nfs kunnen gebruiken om alles direct weg te laten schrijven naar de goede server.

Kan dat niet, dan zou ik via de database bijhouden welke bestanden op server 2 staan. Ik neem aan dat je per bestand al wel een database record heb waar je zoiets bij zou kunnen houden?

Blog [Stackoverflow] [LinkedIn]


Acties:
  • 0 Henk 'm!

  • Oid
  • Registratie: November 2002
  • Niet online

Oid

Kan ik, als gebruiker, ook bestanden uploaden? Waar daar begrijp ik het niet helemaal?

Je kan toch gewoon content serveren vanaf VPS2, ook kan je het bestand toch rechtstreeks laten uploaden naar VPS2 ipv eerst VPS1?

Acties:
  • 0 Henk 'm!

  • radem205
  • Registratie: Juni 2002
  • Laatst online: 02-02-2022
Thijmen schreef op vrijdag 10 september 2010 @ 13:10:
Kan ik, als gebruiker, ook bestanden uploaden? Waar daar begrijp ik het niet helemaal?

Je kan toch gewoon content serveren vanaf VPS2, ook kan je het bestand toch rechtstreeks laten uploaden naar VPS2 ipv eerst VPS1?
Content server vanaf VPS2 serveren is ook niet het probleem, echter het uploaden wel. Hoe zie jij dat voor je?

Acties:
  • 0 Henk 'm!

  • Xaero
  • Registratie: November 2007
  • Laatst online: 18-09 15:39
radem205 schreef op vrijdag 10 september 2010 @ 19:33:
[...]


Content server vanaf VPS2 serveren is ook niet het probleem, echter het uploaden wel. Hoe zie jij dat voor je?
Wanneer de gebruiker wil uploaden, maar jij gewoon met PHP een verbinding met vps2 via FTP. En wordt er gewoon gelijk geupload naar vps2. Ik snap het probleem niet echt?:+


Verder kan je ook als je alsnog het met een cron o.i.d. wil doen (je zet toch alles in een database) ook bij elke audiofile erbij kunnen zetten of ze op vps1 of vps2 staan. Zo kan je dus bijhouden welke files al zijn overgeplaatst naar vps2. Bij het overzetten van alle files die nog op vps1 staat, zet je dit weer in de database. En bij het serveren check je waar ze staan.

[ Voor 93% gewijzigd door Xaero op 10-09-2010 19:43 ]


Acties:
  • 0 Henk 'm!

  • radem205
  • Registratie: Juni 2002
  • Laatst online: 02-02-2022
Xaero schreef op vrijdag 10 september 2010 @ 19:37:
[...]


Wanneer de gebruiker wil uploaden, maar jij gewoon met PHP een verbinding met vps2 via FTP. En wordt er gewoon gelijk geupload naar vps2. Ik snap het probleem niet echt?:+
Ja ok, klink logisch. Maar ftp verbindingen aanleggen met php vind ik niet zo lekker klinken (maar dat is puur een gevoelskwestie :)). Ik ga er naar kijken.

Acties:
  • 0 Henk 'm!

  • Matis
  • Registratie: Januari 2007
  • Laatst online: 10:43

Matis

Rubber Rocket

radem205 schreef op vrijdag 10 september 2010 @ 19:41:
Ja ok, klink logisch. Maar ftp verbindingen aanleggen met php vind ik niet zo lekker klinken (maar dat is puur een gevoelskwestie :)). Ik ga er naar kijken.
Ik kan je uit persoonlijke ervaring vertellen, dat het communiceren met FTP-servers vanuit PHP uitstekend werkt. Het werkt nog fijner dan dat je op een lokaal File-system werkt. Vooral omdat FTP de hele transactie en locking voor je regelt :)

Edit; mochten de servers waarmee je werkt het ondersteunen, dan kun je er ook voor kiezen om ftp_ssl_connect te gebruiken. Dit kost wel wat meer rekenkracht, er moeten immers wat ge-encrypted en gedecrypted worden, maar ik neem aan dat dat marginaal klein is.

Edit 2; of je gebruikt de SSH2-Service van PHP.

[ Voor 28% gewijzigd door Matis op 10-09-2010 19:46 ]

If money talks then I'm a mime
If time is money then I'm out of time


Acties:
  • 0 Henk 'm!

  • doeternietoe
  • Registratie: November 2004
  • Laatst online: 20-09 17:02
De beste oplossing gaat denk ik afhangen van het type verbinding dat er tussen de twee servers bestaat en het type load. Als het een zeer snelle verbinding is, zou je de bestanden van vps2 kunnen sharen met nfs en op vps1 kunnen mounten en behandelen alsof het lokale opslag is. Je kunt overigens ook (s)ftp shares mounten in Linux. Ervan uitgaand dat de cpu teveel belast is, moet je deze constructie enkel voor het uploaden gebruiken, anders lost het niets op. Voor het downloaden draai je dan op vps2 een losse webserver die gewoon de lokale bestanden aanreikt.

De gedane aannames zijn in dit geval: A) De cpu load is te hoog, B ) de onderlinge verbinding is snel, C) het aantal downloads is vele malen hoger dan het aantal uploads, D) Je draait Linux

[ Voor 5% gewijzigd door doeternietoe op 10-09-2010 19:51 ]

Pagina: 1