marabunta
Goto Top

Moderne Up-Downloadvariante gesucht

Hallo,

ich habe ein Skript in Python und PowerShell. Damit habe ich meine Tools überall dabei.
Bis vor einigen Monaten hat alles funktioniert, seither funktionieren Updates per https nicht mehr.
Das Zertifikat der Seite ist aktuell und würde bei Zertifikatsfehlern ignoriert werden, auch TLS ist niedrig. Die Befehle dafür werden ignoriert, bzw. Fehler bleibt.

Theoretisch funktioniert noch http, die Nextcloud ist aber nur per https erreichbar.
Das Problem besteht mit PowerShell und auch Python - py2exe erzeugt leider keine einzelne Datei, die Übertragung davon ist grausam.

Weil das ganze nun schon sehr sehr alt ist, dachte ich auch an eine grundlegende Modernisierung des Unterbaus.
Wie wird aktuell eine Datei zuverlässig im Internet übertragen? Hin ist aktuell Nextcloud https Direktlink und Bestätigung zurück per FTP.
Ich will keine Authentifizierung im Skript speichern, ist hier völlig unnötig.

Wenn es Abhängigkeitsfrei mit c++/c# o..ä. geht, nehme ich das auch.

Content-Key: 33201542613

Url: https://administrator.de/contentid/33201542613

Printed on: May 3, 2024 at 21:05 o'clock

Member: schrick
schrick Apr 22, 2024 updated at 11:48:24 (UTC)
Goto Top
Hallo.
Zitat von @Marabunta:
Damit habe ich meine Tools überall dabei.
Mit nem USB-Stick ginge das auch, sollte man als Supporter eh immer dabei haben wenn's Internet mal streikt oder der Zugang Vor-Ort so beschränkt wurde das Downloads raus gefiltert werden face-smile.
Bis vor einigen Monaten hat alles funktioniert, seither funktionieren Updates per https nicht mehr.
Aha, dann fixe dein Skript.
Das Zertifikat der Seite ist aktuell und würde bei Zertifikatsfehlern ignoriert werden
Warum das Zertifikat nicht von einer gültigen CA ausstellen lassen? Mit Let's Encrypt ist das kostenlos.
, auch TLS ist niedrig.
? Du meinst dein Server akzeptiert TLS < 1.2 und ältere Cipher? Dann kannst du https auch gleich abschalten wenn Sicherheit nicht nötig ist.
Die Befehle dafür werden ignoriert, bzw. Fehler bleibt.
Dann fixe dein Skript. Welcher Fehler?
Theoretisch funktioniert noch http, die Nextcloud ist aber nur per https erreichbar.
Mit einem Reverse-Proxy ist das kein Problem wenn du über einen Filter nur die Dateilinks auslieferst.
Das Problem besteht mit PowerShell und auch Python - py2exe erzeugt leider keine einzelne Datei, die Übertragung davon ist grausam.
Was für ein Problem??
Weil das ganze nun schon sehr sehr alt ist, dachte ich auch an eine grundlegende Modernisierung des Unterbaus.
Wie wird aktuell eine Datei zuverlässig im Internet übertragen? Hin ist aktuell Nextcloud https Direktlink und Bestätigung zurück per FTP.
Ich will keine Authentifizierung im Skript speichern, ist hier völlig unnötig.
https ist doch aktuell. Wenn http reicht dann nimm halt das..
Du kannst auch einen reinen eigenen simplen TCP-Server mit TCP-Client betreiben der Dateien empfängt oder ausliefert wenn du kein http(s) nutzen willst.
https://learn.microsoft.com/de-de/dotnet/fundamentals/networking/sockets ...
https://codingvision.net/c-simple-tcp-server
Oder bewährte Tools wie
curl
wget
Die sind auch portable ohne Abhängigkeiten nutzbar.
...

Gruß schrick
Member: Vision2015
Vision2015 Apr 22, 2024 at 11:28:42 (UTC)
Goto Top
Moin,
Zitat von @Marabunta:

Hallo,

ich habe ein Skript in Python und PowerShell. Damit habe ich meine Tools überall dabei.
Prima face-smile
Bis vor einigen Monaten hat alles funktioniert, seither funktionieren Updates per https nicht mehr.
updates von was genau?
Das Zertifikat der Seite ist aktuell und würde bei Zertifikatsfehlern ignoriert werden, auch TLS ist niedrig. Die Befehle dafür werden ignoriert, bzw. Fehler bleibt.
was wäre die Fehlermeldung?
was für Befehle?


Theoretisch funktioniert noch http, die Nextcloud ist aber nur per https erreichbar.
ah Ja...
Das Problem besteht mit PowerShell und auch Python - py2exe erzeugt leider keine einzelne Datei, die Übertragung davon ist grausam.
wie meinen?

Weil das ganze nun schon sehr sehr alt ist, dachte ich auch an eine grundlegende Modernisierung des Unterbaus.
ah ja...
Wie wird aktuell eine Datei zuverlässig im Internet übertragen? Hin ist aktuell Nextcloud https Direktlink und Bestätigung zurück per FTP.
Ich will keine Authentifizierung im Skript speichern, ist hier völlig unnötig.
Öh..

Wenn es Abhängigkeitsfrei mit c++/c# o..ä. geht, nehme ich das auch.
bestimmt geht das.... aber magst du uns nicht mehr erzählen?
wie wäre es mit Fehlermeldungen?
oder gar das ganze script?
und deine Befehle, die ignoriert werden, worauf auch immer, wären auch gut zu wissen!

Frank
Member: Snowman25
Snowman25 Apr 22, 2024 at 11:50:28 (UTC)
Goto Top
curl
wget
Start-BitsTransfer
Member: Marabunta
Marabunta Apr 22, 2024 at 12:35:00 (UTC)
Goto Top
Die "aktuelle" Funktion nach vielen Versuchen ist:
function downloadFile($url, $targetFile){
    try
    {
      $HTTP_Request = [System.Net.WebRequest]::Create($url)				
      $HTTP_Response = $HTTP_Request.GetResponse()										
      $HTTP_Status = [int]$HTTP_Response.StatusCode
    } 
    catch [System.Net.WebException] 
    {
        $statusCode = [int]$_.Exception.Response.StatusCode      
        $html = $_.Exception.Response.StatusDescription        															  
        return
    }
    $HTTP_Response.Close()

    If ($HTTP_Response.ContentLength -lt 1 )
    {									  
        $Global:Connected = 0
        return
    }
    $start_time = Get-Date
    $wc = New-Object System.Net.WebClient
    try
    {
        $wc.DownloadFile($url, $targetFile) 
        $Global:Connected = 1       
    }
    catch [Net.WebException]
    {																	   
        $Global:Connected = 0
    }
    If ($Global:Connected -gt 0)
    {																											 
    }
}
downloadFile -url "https://webseite.de/nextcloud-php/index.php/s/5cnP88BPAb6GGhZ/download/dotnet_win10.zip" -targetFile "C:\temp\net10.exe"  

Ordner c:\temp existiert, keine besonderen Berechtigungen.
Keine Fehlermeldung, der Befehl wird scheinbar ausgeführt. Kein Herunterladen o.ä.
Auch nichts in der Ereignisanzeige.
Member: Marabunta
Marabunta Apr 22, 2024 at 12:38:26 (UTC)
Goto Top
Es ist ein Lets Encrypt Zertifikat. USB-Stick ist bei Fernwartung nicht so sinnvoll.
Reverse-Proxy würde ich gerne einsetzen, wie ich das bei Asustor hinbekomme, habe ich noch nicht geblickt.
Python erstellt trotz Parameter für eine Datei, einen ganzen Ordner mit dlls neben der exe.
curl und wget sollte ich mir vielleicht nochmal ansehen.
Member: schrick
schrick Apr 22, 2024 updated at 12:47:49 (UTC)
Goto Top
HttpWebRequest ist nicht mehr empfohlen
Nachfolger ist der httpclient
https://learn.microsoft.com/de-de/dotnet/api/system.net.http.httpclient? ...
Keine Fehlermeldung, der Befehl wird scheinbar ausgeführt. Kein Herunterladen o.ä.
Du gibst ja auch nix aus in der Exception... 🙃

Wie gesagt curl und wget erledigen dir das auch zverlässig und sind auch portable nutzbar.
Member: WoitschekBF3
WoitschekBF3 Apr 24, 2024 updated at 06:46:30 (UTC)
Goto Top
Kannst c# benutzen, wenn es nur um den Download geht werden auch keine Bibliotheken benötigt. Steckt alles schon im Framework 4.8/3.5 drin. Funktioniert dann aber nur auf microsoft Systemen
Member: Cptlars
Cptlars Apr 26, 2024 at 11:22:54 (UTC)
Goto Top
Ich würde hier wohl erstmal anfangen die Rückmeldungen deiner Befehle in ein logfile zu schreiben. Das könnte durchaus helfen