Ergebnis 1 bis 3 von 3
  1. #1
    Mitglied
    Registriert seit
    Dec 2011
    Beiträge
    2

    Standard [Powershell] Dateigröße über HTTP bestimmen

    Hallo zusammen,

    bin der Sandfish und dies ist mein erster Beitrag . Habe mir länger überlegt, ob ich mein Problem hier anfrage aber mir fällt partout keine Lösung ein.

    Ich schreibe derzeit ein Powershell-Script, um automatisiert Musikalben von www.jamendo.de (Creative Commons) herunterzuladen. Das Script ist derzeit im Endstadium und funktioniert bisher sehr gut.

    Das Problem ist, dass mit diesem Script auf Dauer soviel heruntergeladen wird, dass es nur eine Frage der Zeit ist, bis die Festplatte voll läuft. Ich könnte nun vor dem Download eines jeden Albums den freien Speicherplatz der Platte berechnen und festlegen, dass das Script unter einem festgelegten Schwellwert (z.B. 1GB) kein Album mehr herunterlädt.

    Eleganter fände ich es jedoch herauszufinden wie groß ein Album ist und es nur dann zu downloaden, wenn genug Speicherplatz vorhanden ist. Gibt es eine Möglichkeit via Powershell \ HTTP herauszufinden wie groß eine Datei ist, bevor ich sie gedownloaded habe? Ich stehe gerade gehörig auf dem Schlauch und weiß nichtmal einen Ansatz.

    Vielen Dank im voraus
    Sandfish

  2. #2
    \o/ Avatar von sumisumi
    Registriert seit
    Jan 2008
    Beiträge
    4.039

    Standard Re: [Powershell] Dateigröße über HTTP bestimmen

    Ich weiß, Powershell != C# aber egal
    http://stackoverflow.com/questions/1...http-file-size

  3. #3
    Mitglied

    (Threadstarter)


    Registriert seit
    Dec 2011
    Beiträge
    2

    Standard Re: [Powershell] Dateigröße über HTTP bestimmen

    Vielen Dank für den Link! Ich habe daraus jetzt eine Powershellversion gestrickt.
    Vielleicht kann es ja jemand gebrauchen:

    Code:
    Function GetAlbumSize ($F_URL)
    {
         [net.httpWebRequest] $req = [net.webRequest]::create($F_URL)
            
         # We just want header information
         $req.Method = "HEAD"
    
         [net.httpWebResponse] $resp = $req.GetResponse()
    
         [int] $F_length = $resp.ContentLength
    
         $resp.close()
    
        # Return value in KB
        return $F_length
    }
    Vor allem "$resp.close()" ist wichtig! Wenn mehrere Verbindungen nacheinander gestartet werden und dieser Befehl nicht ausgeführt wird hängt sich das Script auf.

  4.  
     
     

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •