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­lisch eine Anleitung gepos­tet, wie man mit­tels eines eige­nen Webservers ein Foto ein­fach auto­ma­tisch 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öglich

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

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 zugreifen!
  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­lich nicht mit in das Script.

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

    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 aussehen:

    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 einfü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 anlegen
    Man kann die Einzelscripte natür­lich 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­lich je nach belie­fer­ten Agenturen. Die Namen der Scripte müs­sen denen ent­spre­chen, die bei Schritt zwei ver­ge­ben wurden.

    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 gelangen!
    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