FTP gibt nicht die Dateigröße zurück

  • Servus liebes Forum,


    ich habe ein QNAP TS-431 im Einsatz auf welchem ein FTP-Server läuft. Derzeit schreibe ich ein Skript in PowerShell, welches eine Datei von diesem FTP herunterlädt, was auch funktioniert.


    Allerdings gibt mir der FTP in Zeile 6. des Codes für die ContentLength immer -1 als Wert zurück. Soweit ich weiß kann es entweder damit zu tun haben, dass der PassivModus genutzt wird oder aber der Server sendet diese Information nicht. Es gäbe noch die Möglichkeit $request.UsePassive = $false zu setzen, was aber zur Folge hat, dass dann kein Verbindungsaufbau stattfindet.


    Das ganz geschieht übrigens im LAN und es ist keine Firewall dazwischen.


    Bash
    $uri = New-Object “System.Uri” “$url”
    $request = [System.Net.FtpWebRequest]::Create($uri)
    $request.Credentials = New-Object System.Net.NetworkCredential($user,$pass)
    $request.set_Timeout(15000)
    $response = $request.GetResponse()
    $totalLength = [System.Math]::Floor($response.get_ContentLength()/1024)


    Ergänzend dazu vielleicht noch: Wenn ich von einem anderen FTP-Server Dateien herunterlade (z.B. vom Adobe-FTP), dann funktioniert das Skript und ich bekomme auch die ContentLength.
    Ich gehe also davon aus, dass ich die Servereinstellungen des Proftpd dahingehend verändern muss, dass ich die ContentLength abfragen kann. Bzw. reicht es vielleicht schon aus, wenn der FTP den Aktiv-Modus unterstüzt, was aber in meinen Augen eher eine Notlösung wäre, da ich ja vielleicht in Zukunft per Web darauf zugreifen möchte und dann wäre eine Firewall dazwischen.


    Vielleicht hat ja jemand einen Ansatz für mich.


    Grüße