[PHP] Queue systeem voor file downloaden *

Pagina: 1
Acties:

Onderwerpen


Verwijderd

Topicstarter
Ik wil voor mijn website een download que systeem hebben.

Ik heb getracht om informatie te zoeken of er al iets bestaat wat dit doet, helaas kon ik niets vinden (google en got).

Nu wil ik proberen om het eventueel zelf te maken maar ik moet bekennen dat ik geen idee heb hoe dit het beste te doen.
De bedoeling is dus dat men bestanden kan downloaden van mijn website, echter als er meer mensen zeg bv meer als 5 tegelijkertijd hetzelfde bestand willen downloaden dat ze in een wachtrij geplaatst worden.
Zodra dat er 1 klaar is dat de volgende in de wachtrij mag downloaden, dit systeem wordt ook bij bv fileplanet gebruikt.

Kan me iemand adviseren hoe ik dit (liefst in PHP) kan realiseren of zijn er toch kant en klaar oplossingen die ik niet gevonden hebt?

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17-09 14:05

.oisyn

Moderator Devschuur®

Demotivational Speaker

queue schrijf je dus met nog een extra ue erachter. Misschien dat je nu een betere searchquery hebt :)

modbreak: fix dan ook die topictitel lui kreng ;)

[ Voor 30% gewijzigd door curry684 op 18-09-2003 21:27 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
simpel gedacht, geen download links serveren , alleen tussenpagina's en als iemand van de tussenpagina een downloadlink krijgt dan in je db het aantal downloads verhogen met 1. Dan als de download afgelopen is ( kweet nie hoe dit te meten is, maar zal vast wel kunnen ) de waarde weer verlagen met 1. Als waarde boven 5 dan tussenpagina refresh op 1 minuut gooien en geen downloadlinks verstrekken.

Acties:
  • 0 Henk 'm!

  • dip
  • Registratie: September 2003
  • Laatst online: 16-01-2023

dip

shut up ulé

why de neuk ga je een queue systeem maken? weer iets om me aan te ergeren >:)

It's scientifically known, that base improves the tase of cheezes!


Acties:
  • 0 Henk 'm!

Verwijderd

Je kan natuurlijk gewoon je te downloaden links in een database zetten (php).
En dan een server programma (php, perl, ofzo) continue laten controleren of er nieuwe links zijn en zo ja, dat hij ze dan 1 voor 1 gaat downloaden.

Verwijderd

Topicstarter
dip schreef op 19 september 2003 @ 08:26:
why de neuk ga je een queue systeem maken? weer iets om me aan te ergeren >:)
Om de simpele reden dat ik binnen kort een file ga hosten die veelvuldig zal worden gedownload, om niet de hele bandbreedte van de webserver weg te trekken wil ik dat men in een wachtrij geplaatst wordt.
Niet meer als bv 10 of 20 downloads tegelijkertijd, dat zou ideaal zijn, je kan het ook begrensen met een een limiet op de ftp server te zetten, echter het is niet de mooiste oplosssing, vandaar dat queue systeem.
Je kan natuurlijk gewoon je te downloaden links in een database zetten (php).
En dan een server programma (php, perl, ofzo) continue laten controleren of er nieuwe links zijn en zo ja, dat hij ze dan 1 voor 1 gaat downloaden.
Die staan al in een database, echter het probleem is dat PHP niet kan zien wanneer een download klaar is.
Het gaat er gewoon om dat er gewoon weg nooit meer als een X aantal downloads tegelijkertijd kunnen plaats vinden, dit puur om het netwerk niet overmatig veel te belasten.

[ Voor 32% gewijzigd door Verwijderd op 20-09-2003 01:53 ]


  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02 23:12

SchizoDuckie

Kwaak

nou, ik vind dit juist een minder mooie oplossing. Ik ga echt niet wachten in een rij om een download binnen te trekken. in de tijd dat ik op die download wacht heb ik 'm ergens anders al lang binnen dan.

Al eens gedacht aan en andere webhoster?

back on topic:

Zo'n systeem is best simpel:

* hou een database variabele bij met het aantal concurrent downloads
* zet een meta refresh op de download pagina
* check elke keer of ie een download door mag laten of niet.

[ Voor 33% gewijzigd door SchizoDuckie op 20-09-2003 01:54 ]

Stop uploading passwords to Github!


Verwijderd

Topicstarter
Dat zal je wel moeten omdat ik dan de enigste ben die de file aanbied(alleen recht op de file een X aantal dagen)

En nee we zijn de webhost zelf, we huren zelf eigen ruimte met dedicated bandbreedte en hebben daar diverse servers in hangen, echter we draaien ook diensten waar de verbindings kwaliteit heel belangrijk is, om 100% zeker er van te zijn dat de andere diensten door massaal downloaden geen hinder ondervinden willen we dus de wachtrij invoeren.
Zo'n systeem is best simpel:

* hou een database variabele bij met het aantal concurrent downloads
* zet een meta refresh op de download pagina
* check elke keer of ie een download door mag laten of niet.
Heb dus geen idee hoe je dat zo voor elkaar wilt krijgen....
- PHP registreert dat iemand op de link klikt voor downloaden en schrijft dat in de DB weg
en dan?
Hoe in godsnaam wil PHP dan weten dat je de file (die zal ca 350mb zijn) binnen hebt?
Zodra de download loopt surfen 99% van de mensen verder, dus hoe kan PHP dus zien dat de downlaod klaar is en vervolgens de volgende naar de juiste link stuurt?

[ Voor 42% gewijzigd door Verwijderd op 20-09-2003 02:05 ]


  • Evilbee
  • Registratie: November 2002
  • Laatst online: 10:42
Je zou ook kunnen proberen een mailtje te sturen naar bijvoorbeeld fileplanet. Die hebben ook van die irritante downloadrijen. :)

LinkedIn - Collega worden?


Verwijderd

Doorlinken naar een FTP server.

Verwijderd

Kun je het niet met een omweg doen? Stuur bijvoorbeeld een mailtje met een unieke code per download. Als men dan op die link klikt, dan weet jij of het 'wel of niet mag'.

  • ripperke
  • Registratie: Augustus 2003
  • Laatst online: 19-08 16:06

ripperke

w00t!

Zoals kanzaki zei : doorlinken naar een ftp, maak een virtual host aan voor die bepaalde file met max 10 connecties en laat php daarop connecten, vanzodra de 11e persoon klikt zal php een error terug geven : aan jou om deze error door je script te laten opvangen ... bij deze error moet dus ook de coding komen van het queue systeem ... 1e persoon met error mag dus eerst downloaden etc ...

Suc6

If TCP/IP handshaking was less formal, perhaps SYN/ACK would be YO/WASSUP


  • Webgnome
  • Registratie: Maart 2001
  • Laatst online: 13:09
Verwijderd schreef op 20 September 2003 @ 09:50:
Kun je het niet met een omweg doen? Stuur bijvoorbeeld een mailtje met een unieke code per download. Als men dan op die link klikt, dan weet jij of het 'wel of niet mag'.
maar dan weet je toich nog steeds niet wanneer de file klaar is?

[ Voor 69% gewijzigd door Webgnome op 20-09-2003 11:09 ]

Strava | AP | IP | AW


  • dingstje
  • Registratie: Augustus 2002
  • Laatst online: 02-01-2024
Ofwel werk je dan met een clientside download programma ofwel zet je ergens op je http (of ftp) server iets dat wegschrijft naar een bestand welk ip een bestand aan het downloaden is... Op die manier kan je een queue list maken... Anders zou je eventueel PHP het bestandje laten openen en doorsturen naar de client... (hoewel ik niet weet of php dat aankan om 350 mb te versluizen)

PHP:
1
2
3
4
5
6
7
8
9
<?php
$handler = fopen('/home/www/file.zip', 'r');
header('Content-Type: arch/zip'); // Weet niet meer hoe het contenttype van zip noemt, heb maar wat gegokt :p
$file = fread($handler, filesize('/home/www/file.zip');
foreach ($file as $row)
echo $row;
// mysql_connect...
mysql_query("DELETE FROM queue WHERE ip='{$_SERVER['REMOTE_ADDR']}'");
?>

Ongeveer ;-)

If you can't beat them, try harder


  • vinnux
  • Registratie: Maart 2001
  • Niet online
Je hebt ook bepaalde webservers waarbij het mogelijk is om aan te geven dat er maar x aantal mensen met een x capaciteit een file kunnen downloaden.

  • dip
  • Registratie: September 2003
  • Laatst online: 16-01-2023

dip

shut up ulé

je zou iets met java kunnen doen...
volgens mij draait er op fileplanet ook zoiets..
want dat is de enige mannier om te kijken of de file ook echt gedownload is :]
met php kan dat namelijk niet

It's scientifically known, that base improves the tase of cheezes!


  • MisterData
  • Registratie: September 2001
  • Laatst online: 29-08 20:29
Of je gebruikt BitTorrent, dat is hiervoor gemaakt, je server kan dan optreden als seeder :)
Pagina: 1