FTP Upload - Geschwindigkeit drosseln

  • Hallo AutoIt-Gemeinde,

    nach längerem googeln und durchforsten dieses Forums, hab ich leider keine Antwort für mein Problem gefunden. Wie der Titel schon sagt, suche ich nach einer Möglichkeit die Geschwindigkeit des Datei-Uploads per FTP (FTPEx.au3) zu reduzieren bzw. auf einen festen Wert festzulegen.
    Ich hoffe meine Problem ist klar und wir finden vielleicht sogar eine Lösung dafür! :D

    Gruß

    Matthes

  • Schau mal in die Funktion _FTP_UploadProgress() der FTP_EX.au3. Dort musst du nur noch ein passendes Sleep() in die For/To-Schleife einbauen (dort wo die einzelnen $parts hochgeladen werden).

  • Nur schade das es bei dem ftp udf kein _ftp_filewrite gibt sonst würde dieser code funzen

    Spoiler anzeigen
    [autoit]


    #include <FTPEx.au3>
    #include "SpeedRegu.au3"

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $Session = _FTP_Open("AutoIt FTP Agent")
    $Connect = _FTP_Connect($Session, "server", "User", "pwd", 1)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $hDest = _FTP_FileOpen($Connect, "/File.bin") ;Ändern
    $hSource = FileOpen("File.bin", 16);Ändern

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    _SpeedCtrl_Start(50) ;Bei 50 Kb/s abgedrosselt
    $x = 0
    While
    $read = FileRead($hSource, 1024)
    Switch @error
    Case -1
    ExitLoop
    Case 1
    MsgBox(16, "Upload Fehler", "Fehler beim Upload!")
    EndSwitch
    $tmp = _SpeedCtrl_Regulate(FileGetPos($hFile))
    If $x = 50 Then
    ConsoleWrite("Aktuelle Geschwindigkeit: " & $tmp & " Kb/s" & @CRLF)
    $x = 0
    Else
    $x += 1
    EndIf
    _ftp_filewrite($hDest,$read) ;<=== gibts ja leider nicht
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    _SpeedCtrl_Clear()
    FileClose($hSource)
    _FTP_FileClose($hDest)

    [/autoit]
  • So, das ganze ist etwas in Vergessenheit geraten, deshalb antworte ich erst jetzt.
    Andys Vorschlag konnte ich nachvollziehen, jedoch macht es keinen Sinn für mich. Selbst mit einem passenden Sleep in der entsprechenden Schleife, verlangsam ich doch den Upload-Prozess als solches aber nicht die einzelnen Parts, die prügelt er doch weiter mit voller Bandbreite hoch...
    Wenn ich das falsch verstehen sollte, bitte korrigieren.
    Ähnlich seh ich das mit der Lösung von Sprenger120...

    Matthes

  • So wie ich das mitbekommen hab, Läd er z.b. Part1 hoch und macht dann Sleep.


    Also bei 10 Party macht er zwischendurch 9x Sleep und daher wirds langsamer. Die Durchschnitts-Uploadgeschwindigkeit sinkt zwar, aber die Geschwindigkeit der einzelnen Uploads, die die einzelnen Parts hinlegen, bleibt gleich ;)


    Also so hab ich das verstanden.

  • So wie ich das mitbekommen hab, Läd er z.b. Part1 hoch und macht dann Sleep.


    Also bei 10 Party macht er zwischendurch 9x Sleep und daher wirds langsamer. Die Durchschnitts-Uploadgeschwindigkeit sinkt zwar, aber die Geschwindigkeit der einzelnen Uploads, die die einzelnen Parts hinlegen, bleibt gleich ;)


    Also so hab ich das verstanden.


    Ja so hab ich es auch verstanden und das ist nicht die Lösung, die ich gerne hätte. Mir gehts darum, in dem Fall, die einzelnen Parts zu regulieren!