Schlagwort-Archive: Websever

Bildverteilung an Agenturen mittels FTP und Webserver

Heute gibt es mal etwas Sinnvolles zum Basteln für die Informatiker, Programmierer und ande­ren IT-Berufler unter Euch.
Im Blog von Dreamstime hat­te der Softwareentwickler Marco Schwarz mal auf eng­li­sch eine Anleitung gepos­tet, wie man mit­tels eines eige­nen Webservers ein Foto ein­fach auto­ma­ti­sch an ver­schie­de­ne Bildagenturen schi­cken kann. Ich bat ihn, die­se Anleitung mal ins Deutsche zu über­tra­gen. Viel Spaß beim Lesen und Danke an Marco.
Viele Kabel in Hand
_______ab_hier_schreibt_Marco_____________
Wer kennt das nicht? Da hat man eine arbeits­rei­che Woche hin­ter sich und eine Menge Bilder auf der Festplatte – und nun wol­len die­se zu den ver­schie­de­nen Bildagenturen.
Nehmen wir mal an, 50 Bilder mit einer durch­schnitt­li­chen Dateigröße von je 8MB sind zu ver­tei­len. Das sind 400MB die zu jeder Agentur gela­den wer­den müs­sen. In mei­nem Fall wäre dies bei 8 Agenturen ein Transfervolumen von ca. 3.2 Gigabyte.
Mit dem ‚tra­di­tio­nel­len Weg‘, also Upload zu jeder ein­zel­nen Agentur per FTP-Client, dau­ert dies bei einer 16MBit DSL-Leitung ca. 9 Stunden (bei 100KB Upload-Geschwindigkeit).
Um dies zu beschleu­ni­gen, hat­te ich die Idee, mei­nen Webserver zur Verteilung zu benut­zen. Er steht im 1&1-Rechenzentrum und hat eine etwas schnel­le­re Anbindung als ich zu Hause 😉

Zwei Voraussetzungen gibt es für die von mir beschrie­be­ne Methode:

  • Der Webserver läuft mit Linux
  • Ein Zugang per SSH ist mög­li­ch

Wem das alles nichts sagt oder wer sich kei­nen Webserver zule­gen will, der soll­te sich mal picwork­flow* anse­hen, das Prinzip ist ähn­li­ch.

Nun aber zum Verteilen der Bilder:
  1. Verzeichnis anle­gen
    Zuerst soll­te man sich ein Verzeichnis für die benö­tig­ten Scripte (sie­he 2.) sowie die Bilddateien anle­gen. Darauf ach­ten, daß die­ses nicht im Web-Verzeichnis liegt, wo über den Browser dar­auf zuge­grif­fen wer­den kann – ansons­ten könn­te jemand auf die Benutzer/Passwortinformationen zugrei­fen!
  2. Scripte anle­gen
    Jede Seite erhält ein klei­nes Script, mit dem die Bilder aus dem aktu­el­len Verzeichnis zur Agentur gela­den wer­den. Das sieht dann z.B. für die Agentut 123rf so aus:— Start up123rf.sh —

    #!/usr/bin/expect
    set time­out -1
    spawn ftp -v -i submit.123rf.com
    expect „Name („
    send „der_benutzername_kommt_hierhinn“
    expect „Password:“
    send „und_hier_das_passwortn“
    expect „ftp>“
    send „mput *.jpgn“
    expect „ftp>
    „send „quitn“

    — Ende —

    Die Zeilen mit dem „Start“ und „Ende gehö­ren natür­li­ch nicht mit in das Script.

    Einfach Benutzername und Passwort durch die eige­nen Werte erset­zen und schon wird hef­tig hoch­ge­la­den.
    In der spawn-Zeile wird ein­fach für jede Agentur der ent­spre­chen­de FTP-Server ein­ge­tra­gen.
    Eventuell müs­sen die expect-Zeilen etwas ange­passt wer­den, falls der FTP-Server der Agentur ande­re Meldungen aus­gibt.

    Wenn meh­re­re Dateitypen gela­den wer­den sol­len, ein­fach wei­te­re expect/send für das mput ergän­zen, das kann dann z.B. so aus­se­hen:

    expect „ftp>“
    send „mput *.jpgn“
    expect „ftp>“
    send „mput *.zipn“
    expect „ftp>“
    send „mput *.avin“

    Muss in ein Unterverzeichnis auf dem FTP-Server gewech­selt wer­den, fol­gen­des Kommando anpas­sen und vor die mput-Befehle ein­fü­gen:

    expect „ftp>“
    send „cd ein_ftp_unterverzeichnisn“

  3. Liste eini­ger Bildagenturen mit FTP-Servern
    ftp.shutterstock.com
    upload.dreamstime.com
    submit.fotolia.com
    ftp.canstockphoto.com
    ftp.bigstockphoto.com
    ftp.clipdealer.com

    panthermedia.net
    usw.
    Eventuell müs­sen die FTP-Zugänge noch bei der jewei­li­gen Agentur frei­ge­schal­tet wer­den, falls man bis jetzt nur mit dem Webinterface gela­den hat.
  4. Haupt-Script zum Aufruf der ein­zel­nen Scripte anle­gen
    Man kann die Einzelscripte natür­li­ch von Hand auf­ru­fen, schnel­ler gehts aber mit noch einem klei­nen Script:— Start upall.sh —
    #!/bin/bash
    ./upshut.sh
    ./upcan.sh
    ./upbigs.sh
    ./updream.sh
    ./upfotolia.sh
    ./uppanther.sh
    ./upclip.sh
    ./up123rf.sh
    — Ende —

    Der Inhalt vari­iert natür­li­ch je nach belie­fer­ten Agenturen. Die Namen der Scripte müs­sen denen ent­spre­chen, die bei Schritt zwei ver­ge­ben wur­den.

    Zum Schluss für alle Scripte den Befehl

    chmod 700 *.sh

    aus­füh­ren, damit sie aus­führ­bar, aber nicht für jeden les­bar sind.

  5. Bilder ver­tei­len
    Jetzt kommts: Sind alle Scripte vor­han­den, lädt man sei­ne Bilddateien auf den Webserver und ruft das Hauptscript auf:./upall.sh

    Nun kann man zuse­hen, wie die Verbindungen auf­ge­baut und die Bilder nach­ein­an­der gela­den wer­den. Z. B. bei Shutterstock gibt es schon mal Transferraten von 4–5 Megabyte pro Sekunde – wenn gera­de wenig los ist.

  6. Sicherheitshinweis
    Vorsicht mit den Scripten und wo sie abge­legt wer­den! Sie ent­hal­ten Benutzername und Passwort für die Agenturen, das soll nicht in die fal­schen Hände gelan­gen!
    Ein Root-Server ist nicht für jeden geeig­net, da man die­sen selbst ver­wal­ten muss! Ein gema­nag­ter Hosting-Vertrag tut es da auch oder ein gema­nag­ter Server.
  7. Beispiele für geeig­ne­te Webserver-Angebote
    1&1 Virtual Server (L,XL,XXL)
    1&1 Homepage (Business Pro)
    Hetzner Webhosting (Level 19)
    Hetzner Root Server
    Hetzner Managed Server
* Affiliate-Link