Simples ftp directory listing

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Simples ftp directory listing

    Ich würde gerne eine kleine SWIFT3 macos Applikation schreiben, die zunächst alle Files(Bilder) in einem Directory auf einem FTP-Server anzeigt,
    und später vielleicht lädt.

    Ich habe etwa gegoogelt und NSURLSession gefunden. Damit kann ich den Inhalt von zb. demo:password@test.rebex.net/readme.txt laden

    func startRequestWithUrl(url: NSURL)
    {
    let request = NSURLRequest(URL: url)
    let session = NSURLSession.sharedSession()
    let task = session.dataTaskWithRequest(request) { (data, response, error) -> Void in
    print("Data: \(data)")
    print("Response: \(response)")
    print("Error: \(error)")
    }
    task.resume()
    }

    Aber wie bekomme ich eine Fileliste des/der Verzeichnisse/s --> also das, was man in der Shell so machen würde:

    ftp:\//demo:password@test.rebex.net
    Connected to test.rebex.net.
    220 Microsoft FTP Service
    331 Password required for demo.
    230 User logged in.
    Remote system type is Windows_NT.
    200 Type set to I.
    ftp> ls
    229 Entering Extended Passive Mode (|||1028|)
    150 Opening ASCII mode data connection.
    10-27-15 03:46PM <DIR> pub
    04-08-14 03:09PM 403 readme.txt
    226 Transfer complete.
    ftp>

    Danke für Eure Ideen

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von NSObject ()

  • gritsch schrieb:

    macmoonshine schrieb:

    FTP funktioniert anders als HTTP, und NSURLSession unterstützt nur den FTP-Download einzelner Dateien. Schau dir mal stattdessen CFFTPStreamRef an.
    Ist deprecated.

    Ich würds mal mit libcurl versuchen - ist halt etwas unpraktisch bzw nur über umege möglich in swift.
    Ich würde eher auf dieses Dinosaurier-Protokoll verzichten. ;) Es gibt auch FTP-Clients in Swift.
    „Meine Komplikation hatte eine Komplikation.“
  • macmoonshine schrieb:

    Es gibt auch FTP-Clients in Swift.
    Dann holt man sich halt wieder schlecht getestete third-party componenten ins eigene programm.
    Da verlasse ich mich lieber auf libs die jahrzehnte lang entwickelt und getestet wurden und auch direkt vom System mitgeliefert werden (libcurl). Aber jeder wie er will. Es herrscht ja eh die mentalität lieber ein Third-Party-Framework einzubinden alsselbst 5 zeilen zu schreiben...
  • gritsch schrieb:

    macmoonshine schrieb:

    Es gibt auch FTP-Clients in Swift.
    Dann holt man sich halt wieder schlecht getestete third-party componenten ins eigene programm.Da verlasse ich mich lieber auf libs die jahrzehnte lang entwickelt und getestet wurden und auch direkt vom System mitgeliefert werden (libcurl). Aber jeder wie er will. Es herrscht ja eh die mentalität lieber ein Third-Party-Framework einzubinden alsselbst 5 zeilen zu schreiben...
    Ich würde auch eher CFFTPStream verwenden, auch wenn es veraltet ist. Das passt dann ja auch gut zu dem Protokoll. ;)
    „Meine Komplikation hatte eine Komplikation.“
  • Seitenbemerkung: Mach' Dir gute Gedanken über den Schutz dieses Verzeichnisses. Ich könnte mir vorstellen, dass manche dieser Bilder nicht öffentlich werden sollten. Bei einem FTP zucke ich dann etwas zusammen.

    Vielleicht hast Du doch eine Ressource im lokalen Netz? Oder kannst Du irgendwas verschlüsseltes verwenden? Oder den Zugriff wenigstens auf Deine externe IP beschränken?

    Ein bisschen paranoid, Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.
  • Schreib ein Script (PHP, perl, bash, o.ä), dass Dir eine Dateiliste beim Aufruf (und ggfs. Authorisierung) erstellt und Dir bspw. als JSON übergibt. (Beispiel 1, Beispiel 2)

    Das kannst Du dann ganz bequem in einer Zeile laden

    JavaScript-Quellcode

    1. var text = try String(contentsOf: URL(string: "https://osxentwicklerforum.de/test/filelist/files.php")!)
    Mit den Hinweis von Mattes im Hinterkopf, kannst Du die Bilder per Script auch aus einem nicht öffentlichen Verzeichnis ausliefern.
  • MyMattes schrieb:

    Seitenbemerkung: Mach' Dir gute Gedanken über den Schutz dieses Verzeichnisses. Ich könnte mir vorstellen, dass manche dieser Bilder nicht öffentlich werden sollten. Bei einem FTP zucke ich dann etwas zusammen.

    Vielleicht hast Du doch eine Ressource im lokalen Netz? Oder kannst Du irgendwas verschlüsseltes verwenden? Oder den Zugriff wenigstens auf Deine externe IP beschränken?

    Ein bisschen paranoid, Mattes
    Ich finde das überhaupt nicht paranoid. Ich finde es einfach nur erschreckend, wie naiv da teilweise mit Sicherheit umgegangen wird. Einfach mal nach 'offene Überwachungskameras' googeln. Am liebsten würde ich da die Produkte einiger Hersteller ihnen gerne links und rechts um die Ohren knallen.

    Etwas wie FTP hat in diesem Anwendungsfall absolut nichts verloren.

    Es ist nichts dagegen einzuwenden, wenn sich ein Anfänger zum Lernen, Austesten und Rumspielen auf diesem Wege an die Thematik ranrobbt, aber produktiv ist das ein absolutes No-Go.
    Das iPhone sagt: "Zum Antworten streichen". Wie? Echt Jetzt? Muß ich erst die Wohnung streichen!?
  • torquato schrieb:

    Etwas wie FTP hat in diesem Anwendungsfall absolut nichts verloren.
    Mir fällt eigentlich kein Anwendungsfall ein, der FTP rechtfertigen könnte. 99,999% begründen FTP mit „weil es der Kunde so will“. ;)

    @Fritz: Die Zeit, die du in einen funktionsfähigen FTP-Client steckst, solltest du lieber in die Auswahl und Integration eines vernünftigen Protokolls investieren. Schon mal an SSH bzw. Rsync gedacht? Ein Web-DAV-Server ist auch keine Hexerei.
    „Meine Komplikation hatte eine Komplikation.“
  • MacounFFM schrieb:

    Mit den Hinweis von Mattes im Hinterkopf, kannst Du die Bilder per Script auch aus einem nicht öffentlichen Verzeichnis ausliefern.
    Ich vermute (!) dass für Fritz hier der gangbare Kompromiss liegt: Viele Kameras bieten zum Abliefern ihrer Bilder nur unverschlüsselte eMail, FTP und / oder irgend einen Cloud-Dienst. Da wird mir ganz schlecht und ich hoffe, ein interner Server reicht dem Anspruch an Verfügbarkeit der Überwachungsbilder. Schließlich wird Fritz ja wohl kaum einen Einbruchalarm durch Blick auf sein Handy auslösen wollen, oder?

    Bitte beim eigenen Sicherheitsbedürfnis nicht die Persönlichkeitsrechte anderer vergessen! Ich möchte als Besucher nicht Fotos von mir "irgendwo" gespeichert wissen, da reichen mir schon die öffentlichen Überwachungen...

    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.
  • torquato schrieb:

    Ich finde es einfach nur erschreckend, wie naiv da teilweise mit Sicherheit umgegangen wird. Einfach mal nach 'offene Überwachungskameras' googeln. Am liebsten würde ich da die Produkte einiger Hersteller ihnen gerne links und rechts um die Ohren knallen.
    Es ist auffällig, dass ausgerechnet Anbieter für Sicherheitsprodukte, beim Thema Sicherheit fortwährend versagen.
    * Kann Spuren von Erdnüssen enthalten.
  • Gut, Ihr hab ja Recht. Sicherheitstechnisch ist das sicher keine tolle Geschichte. Ich wollte das nur mal ausprobieren.
    Und da die Cam und der Webspace nun mal schon vorhanden waren, wollte ich das in Swift mal ausprobieren ....
    Mich wundert nur, warum das directory listing mittels NSURLSession nicht machbar ist ...