Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 15 von 17

Thema: PHP Entwickler für einfache Aufgabe

  1. #1
    Anfänger
    Registriert
    Apr 2017
    Beiträge
    2
    Gefällt mir!
    0
    Du gefällst: 0

    PHP Entwickler für einfache Aufgabe

    Hallo Leute,

    ich bin auf der Suche nach jemanden Der mir mein Problem lösen kann. Und zwar habe ich grade bei einem Projekt das Folgende Problem:
    Ich erstelle mit Java große Dateien(10gb) mit Verschiedenen Geschwindigkeiten 50kb/s bis 1MB/s -> "test92.rnd" die Datei liegt im Ordner:
    /var/www/
    Jetzt möchte ich, wenn jemand die download.php aufruft diese Datei herunterladen kann.
    Wenn die Datei schon erstellt wurde ist das ja kein Problem. Aber ich möchte das wenn die Datei noch nicht zuende erstellt wurde Sie schon runtergeladen werden kann und das die Download Geschwindigkeit angepasst wird.
    Die Größe der Datei ist bekannt.

    Ich zahle in Bitcoins oder Paypal.
    Angebote bitte per PM.

  2. Werbung - Hier werben?
  3. #2
    Anfänger
    THEMENSTARTER


    Registriert
    Apr 2017
    Beiträge
    2
    Gefällt mir!
    0
    Du gefällst: 0
    hat niemand die kenntnisse in PHP?

  4. #3
    Senior Avatar von Uranjitsu
    Registriert
    May 2016
    Beiträge
    207
    Gefällt mir!
    223
    Du gefällst: 158
    Gedulde Dich doch bitte noch ein wenig.
    Wenn jemand Interesse und Zeit aufbringen kann, wird er sich schon melden.
    LG - Uranjitsu
    Simple Szene BBcode Generator ( TOT :/ )

    [CODESCHNIPSEL]

  5. #4
    Orakel von Delphi Avatar von 1stAid
    Registriert
    Dec 2015
    Beiträge
    267
    Gefällt mir!
    86
    Du gefällst: 226
    Allein der Gedanke...
    eine Datei die nicht fertig erstellt ist...
    wird ja normalerweise geschützt.
    Das ganze einem Client zu übergeben als Stream, da ja zum (start) Zeitpunkt kein Ende vorhanden ist.
    Das fat / 32bit Systeme Probleme haben die Datei zu laden.
    Ich bin kein Experte in php, aber so klein ist die Aufgabe glaube ich nicht. Allein die Berechnung um die passende Dl Geschwindigkeit zu errechnen .....
    Es müsste wohl auf Client-seite wie bei Videos gepuffert werden usw.

    Wenn ich mich täusche, lasse ich mich gerne belehren.

    Es könnte einfacher sein du erstellst serverseitig rarparts und lässt diese wenn sie fertig sind bereitstellen.
    Geändert von 1stAid (17.04.2017 um 01:09 Uhr)

  6. #5
    Junior Avatar von fralix
    Registriert
    Jul 2016
    Beiträge
    62
    Gefällt mir!
    107
    Du gefällst: 8
    Soweit ich weiß, ist das mit reinem PHP gar nicht möglich. Wenn, dann müssen da Modifikationen am Webserver, wenn nicht sogar ein komplett Neuer ran.
    Wenn du Details über die Dateien herausgibst, könnte man vorher schon Teile davon herunterladen. Das liegt dann am Dateityp - ansonsten wie von 1stAid bereits erwähnt Rarparts erstellen.

  7. #6
    Anfänger Avatar von webmaster1337
    Registriert
    May 2017
    Beiträge
    2
    Gefällt mir!
    0
    Gefällt mir: 1
    Eventuell schafft man das, wenn man die Dateien via PHP "chuncked" liest, dann über output buffer schrittweise ausgibt. Entsprechend wären natürlich dann noch eine "Prüffunktion" notwendig, die nötigenfalls via sleep DL-Speed drosselt (aber meist resultiert dies in timeouts und anderen nervigen Downloadfehlern.)

    http://cn2.php.net/manual/en/functio...file.php#48683

    Was ich allerdings nicht weiss, ist, wie das ganze ist wenn du im Header die Filesize (evtl. mit "provisorischer" Filesize?) nicht übermittelst? Meine Vorposter haben dieses Problem ja bereits angesprochen.

  8. #7
    VIP Team Avatar von Unlimiter
    Registriert
    Mar 2015
    Beiträge
    728
    Gefällt mir!
    125
    Du gefällst: 632
    Ja, es funktioniert mit diesem Snippet auf die Weise in bestimmten Fällen. Wenn du die Größe der Datei nicht angibst, ist kein Fortschritt zu lesen (Download startet anstelle der "xx von xx geladen"). Die Datei wird aber geladen. Das Problem ist aber weniger die fehlende Fortschritt-Anzeige (bei großen Files werden die Leute trotzdem durchdrehen und abbrechen).

    Viel mehr sind folgende Punkte ein Problem:
    • Die Datei kommt nicht komplett an (z.B. wird zu langsam geschrieben, aber zu schnell gelesen oder der eine Prozess kommt seltener an die Reihe als der andere)
    • Irregulärer Name bei Zip-Files während der Erstellung
    • Eventuell vorhandenes Mutex beim Erstellen eines Files, dass Zugriffe während des Schreibens auf die Datei nicht zulässt
    • usw.


    Davon abgesehen ist die Empfehlung der Nutzung "sleep" extrem schlecht. Immerhin sorgt es dafür, dass die maximale Laufzeit des Scripts erreicht wird, ohne das getan zu haben was es sollte. Eine Sekunde zu pausieren, ist schon ein enormer Wert. Ein usleep sollte reichen.

    Dementsprechend muss man sich übrigens um die Laufzeit kümmern, die man entweder unlimitiert gestalten oder ständig um x Sekunden erhöhen muss.

  9. #8
    Anfänger Avatar von webmaster1337
    Registriert
    May 2017
    Beiträge
    2
    Gefällt mir!
    0
    Gefällt mir: 1
    Zitat Zitat von Unlimiter Beitrag anzeigen
    Ja, es funktioniert mit diesem Snippet auf die Weise in bestimmten Fällen. Wenn du die Größe der Datei nicht angibst, ist kein Fortschritt zu lesen (Download startet anstelle der "xx von xx geladen"). Die Datei wird aber geladen. Das Problem ist aber weniger die fehlende Fortschritt-Anzeige (bei großen Files werden die Leute trotzdem durchdrehen und abbrechen).

    Viel mehr sind folgende Punkte ein Problem:
    • Die Datei kommt nicht komplett an (z.B. wird zu langsam geschrieben, aber zu schnell gelesen oder der eine Prozess kommt seltener an die Reihe als der andere)
    • Irregulärer Name bei Zip-Files während der Erstellung
    • Eventuell vorhandenes Mutex beim Erstellen eines Files, dass Zugriffe während des Schreibens auf die Datei nicht zulässt
    • usw.


    Davon abgesehen ist die Empfehlung der Nutzung "sleep" extrem schlecht. Immerhin sorgt es dafür, dass die maximale Laufzeit des Scripts erreicht wird, ohne das getan zu haben was es sollte. Eine Sekunde zu pausieren, ist schon ein enormer Wert. Ein usleep sollte reichen.

    Dementsprechend muss man sich übrigens um die Laufzeit kümmern, die man entweder unlimitiert gestalten oder ständig um x Sekunden erhöhen muss.
    Die maximale Laufzeit kann mit set_time_limit(0) auf unendlich lang gesetzt werden. Aber das mit dem usleep ist echt hilfreich, kannte diese Funktion bis anhin noch nicht

  10. #9
    Senior
    Registriert
    Jun 2015
    Beiträge
    663
    Gefällt mir!
    208
    Du gefällst: 395
    Und ich dachte schon meine Ideen sind schon immer schräg.

    Auf jeden Fall ist die Überschrift "PHP Entwickler für einfache Aufgabe" Krass gelogen

    Ich glaube nicht das du das mit PHP zufriedenstellen lösen kannst, die Ansätze sind einfach alle zu fehleranfällig und Fricklig.

    Du solltest die Files aufteilen (zb in 1Mb Häppchen) und dir jemand suchen der dir ein Tool schreibt um sie zu downloaden und zusammenzufügen. Das dürfte wesentlich einfacher gehen als PHP zu vergewaltigen. So in der Art wie wir sie damals benutzt haben als Warez noch bei Geocities und Co lag. (Mir fällt gerade der Name der Tools nicht mehr ein)

  11. #10
    VIP Team
    Registriert
    May 2015
    Beiträge
    1,018
    Gefällt mir!
    862
    Du gefällst: 374
    Sollte doch möglich sein per Stream die Datei an den User zu senden. Sprich einfach Chunks zu senden. Eventuell ist PHP die falsche "Sprache" dafür? Wirf doch mal ein Auge auf (fancy) nodejs. Würde mir jetzt einfallen.
    .:: Well, duh! ::.

  12. #11
    VIP Team Avatar von Unlimiter
    Registriert
    Mar 2015
    Beiträge
    728
    Gefällt mir!
    125
    Du gefällst: 632
    Die maximale Laufzeit kann mit set_time_limit(0) auf unendlich lang gesetzt werden
    Nein. Laufzeit kann mit set_time_limit(0) wird die genutzte Laufzeit zurück auf 0 gesetzt. Dadurch wird die max_execution_time nicht erreicht. Würde die Laufzeit unendlich lange gesetzt werden können, müsste die Funktion auch nur einmal aufgerufen werden. Auch wenn ich denke, zu wissen was du meinst, ist es aus technischer Sicht eine große Differenz.

    Ansonsten weiß ich nicht, ob es sinnvoll ist noch ein zusätzlich Tool für den Download schreiben zu lassen. Die Datei in Blöcke aufzuteilen ist natürlich immer eine schlaue Idee, um so zwar nicht die Fehleranfälligkeit bei der Übertragung, aber zumindest die nachzuladenden Daten zu verringern. Wobei ein eigenes Tool natürlich die Koordination zwischen den einzelnen Downloads und möglicherweise benötigten Re-Downloads steuern könnte.

    Das Problem ist ja, dass selbst wenn wir davon ausgehen, dass Blöcke angelegt werden, frühestens bei der beendeten Erstellung eines Blockes alle benötigten Headerdaten korrekt vorliegen.

    The ZIP Archive File Format

    Dasselbe wäre auch bei RAR der Fall.

    Ein Tool kann natürlich den Download dann pausieren, bis der fertige Block vorliegt, weswegen die kleine Größe auch wichtig wäre. Ja, bei näherer Überlegung ist das die sauberste Art die angegebene Aufgabenstellung (mit sehr geringen Infos) zu lösen.

    @Sponge: Es geht bei großen Dateien, die keine Streamdatei darstellen aber darum, dass die Daten auch korrekt beim User ankommen. Bei einem Stream von Videos oder Musik wäre es ohne Probleme möglich, da hier nicht erwartet wird, dass ein paar gekippte Bits falsche Darstellungen produzieren. Wir haben hier aber eine Datei (unabhängig des Formats), welches geschickt werden soll. Außerdem sollte man beachten, dass User keine Lust haben eine 1 - mehrere GB große Datei zu laden, die dann korrupt ist.

    // + fritzis Möglichkeit würde in gewissen Rahmen erlauben die Downloadgeschwindigkeit trotz allem mitzugestalten. Abhängig davon welcher Block gesendet wird und mit den zur Verfügung gestellten Daten im Header kann in gewissen Rahmen bestimmt werden, was der "optimale" DL-Speed relativ zum Erstellungsvorgang ist.

    Kurze Anmerkung: Du streamst Daten immer. Auch ein Download streamt Bits.
    Geändert von Unlimiter (15.05.2017 um 05:51 Uhr)

  13. #12
    Senior Avatar von Nimbus
    Registriert
    Oct 2015
    Beiträge
    561
    Gefällt mir!
    96
    Du gefällst: 573
    Der User ist inaktiv. Die Diskussion also etwas obsolet. Da ich allerdings gerne doof rumdiskutiere schreib ich doch mal was

    Es ist meiner Meinung nach etwas unklar woran die Download Geschwindigkeit angepasst werden soll. Ich tippe mal auf das "maximal mögliche" (alles was schon verfügbar ist wird geladen) oder an "Die Geschwindigkeit mit der die Datei erstellt wird".
    Ohne zu wissen, wie sich die Datei beim Erstellen entwickelt ist das natürlich schwer. Ich bin jetzt ehrlich gesagt davon ausgegangen, dass bereits geschriebene Bits sich nicht mehr ändern und einfach je nach Bedarf/Verfügbarkeit durch gereicht werden können. Wenn die Datei tatsächlich von vorne bis hinten sequenziell geschrieben wird, dann sollte die Aufgabe so lösbar sein.

  14. #13
    #NVD Avatar von HaZe
    Registriert
    Mar 2015
    Beiträge
    179
    Gefällt mir!
    78
    Du gefällst: 162
    Zitat Zitat von Unlimiter Beitrag anzeigen
    Nein. Laufzeit kann mit set_time_limit(0) wird die genutzte Laufzeit zurück auf 0 gesetzt. Dadurch wird die max_execution_time nicht erreicht. Würde die Laufzeit unendlich lange gesetzt werden können, müsste die Funktion auch nur einmal aufgerufen werden. Auch wenn ich denke, zu wissen was du meinst, ist es aus technischer Sicht eine große Differenz.
    Muss sie auch nur. Du hast aber prinzipiell für alle Parameter außer 0 nicht unrecht.

    PHP: set_time_limit - Manual
    "Kaum machstes richtig - schon funktionierts!"
    Kein Support per PN. :)
    ICQ 442-918
    IntelliTool Auto Upload Bot

  15. Diesen Mitgliedern gefällt dieser Beitrag:


  16. #14
    Anfänger Avatar von skreutzer
    Registriert
    Jul 2015
    Beiträge
    4
    Gefällt mir!
    0
    Du gefällst: 0
    Ich würde das mit AJAX probieren, um den Timeout des PHP-Hosters zu umgehen. Der Client wartet dann halt dazwischen und teilt dem Server anschließend mit, wie viele Bytes bereits geladen wurden. Der Server schaut nach, ob mittlerweile ein neuer Chunck/Block bereitsteht oder meinetwegen auch, was die neue Dateigröße ist, und liefert den aus. Wenn der Server die Datei schneller schreibt als der Downloader, könnte natürlich auch die Chunk-Größe erhöht werden (solange sie nicht gegen das PHP-Timeout stößt) oder die Wartezeit beim Client heruntergehandelt werden. Problem könnte allerdings sein: wohin mit den heruntergeladenen Daten? JavaScript darf ja vermutlich nicht einfach irgendwo im Dateisystem schreiben, und gut, man könnte die Daten in den WebStorage des Browsers schreiben, aber der hat möglicherweise auch ein Größenlimit und das Problem bleibt weiter ungelöst: wie kann man dem Nutzer in JavaScript einen "Speichern-Unter"-Dialog bieten, der dann die Daten vom WebStorage in den gewünschten Zielpfad kopiert? Und letztendlich käme dieser Kopiervorgang am Schluss noch dazu, obwohl die Daten lokal ohnehin schon vorliegen.

  17. #15
    Junior
    Registriert
    Jun 2016
    Beiträge
    97
    Gefällt mir!
    153
    Du gefällst: 42
    Und wieder einige Dinge gelernt hier

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 04.04.2019, 16:03
  2. (Suche) - Facebook Entwickler
    Von Grillmeister im Forum Entwickler / IT-Techniker
    Antworten: 4
    Letzter Beitrag: 06.12.2018, 11:13
  3. Sehr einfache und preiswerte Bolognese
    Von Dreamer123 im Forum Kochen & Essen
    Antworten: 1
    Letzter Beitrag: 08.08.2017, 13:33
  4. (Suche) - Software-Entwickler [PHP/JS]
    Von Unlimiter im Forum Entwickler / IT-Techniker
    Antworten: 0
    Letzter Beitrag: 28.08.2016, 16:11
  5. (Suche) - Entwickler für Captcha
    Von Nuka im Forum Entwickler / IT-Techniker
    Antworten: 0
    Letzter Beitrag: 23.08.2016, 19:34

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  
SzeneBox.org... im Mittelpunkt der Szene!
© since 2015 szeneBOX.org - All Rights Reserved
Domains: www.szenebox.org