EinleitungWer einen MobileMe-Account besitzt oder seine letzten Urlaubsfotos lieber bei Facebook oder Flickr veröffentlichen möchte, der findet in iPhoto entsprechende Funktionen, um Bilder komfortabel hochzuladen. Wer aber Bilder lieber auf seinem eigenen Server hostet, der muss diese zuvor umständlich umkopieren, herunterskalieren und dann noch über einen FTP-Client hochladen. Mit dem Automator kann man sich das Leben etwas einfacher machen. Das Schöne dabei: obwohl der Mac OS X-Finder bis heute nicht auf FTP-Volumes schreiben kann, ist ein Automator-Dienst trotzdem mit Bordmitteln machbar. Wie das geht, möchte ich hier zeigen.
VoraussetzungenDas Endprodukt, was aus diesem Tutorial hervorgeht, wurde in Automator 2.1 unter Mac OS X 10.6.4 erzeugt. Außerdem liegt Webspace bei einem namhaften Web-Hoster vor und ist über FTP erreichbar. Besondere Automator-Plugins werden nicht verwendet.
Schritte zum Erstellen des DienstesNach dem Start von Automator ist ein neuer Dienst zu erzeugen. Dienste haben die Eigenschaft, sich in das ihnen zugewiesene Programm einzuhängen. Der Dienst ist dann über die Menüleiste erreichbar und fängt sofort an zu arbeiten.
Unser Dienst soll alle in iPhoto markierten Bilder entgegennehmen und in einen temporären Ordner kopieren. Denn: das Original-Material soll natürlich auf keinen Fall angefasst werden.
Nachdem wir einen neuen Dienst begonnen haben, legen wir fest, in welche Anwendung sich dieser einzuklinken hat. Wir möchten, dass der Dienst in iPhoto verfügbar ist. Daher nehmen wir folgende Einstellung vor:
Der Dienst soll einen temporären Ordner auf dem Schreibtisch anlegen. Dies ist durch eine einfache Aktion zu machen:
Anschließend möchten wir die in iPhoto markierten Bilder ermitteln. Dafür müssen diese mittels der folgenden Aktion abgefragt werden:
Als Ergebnis erhalten wir die Bilder, die wir in iPhoto markiert haben. Bilder sind letztlich nichts anderes als "Finder-Objekte", also Dateien. Diese Dateien sollen jetzt in den zuvor angelegten temp-Ordner kopiert werden, was sich mit folgender Aktion bewerkstelligen lässt:
Bei der Auswahl des Ordners gibt es einen kleinen Fallstrick: da das Feld keine freien Texteingaben für Ordner zulässt, muss der Ordner erst im Auswahlfenster angelegt werden. Man klickt also in der Combobox "Nach:" auf "Andere..." legt einen "temp"-Ordner auf dem Schreibtisch an und wählt diesen anschließend aus. Sobald die Combobox dann mit dem "temp"-Ordner beschriftet ist, können wir ihn wieder vom Schreibtisch löschen.
Nachdem die Kopieren-Aktion ausgeführt wurde, erhalten wir als Ergebnis die kopierten Dateien. Mit diesen Kopien können wir nun machen, was wir wollen. In unserem Beispiel möchten wir die Bildgröße ein wenig verkleinern, da das Bereitstellen von Bildern auf Web-Seiten in voller Größe zu enorm langen Ladezeiten führen kann. Wir verwenden also die Aktion "Bilder skalieren":
Hier kann entweder ein Prozentwert oder die Pixelgröße eingestellt werden. Je nachdem, ob das Bild ein hoch- oder querformatiges Bild ist, wird entweder die Höhe oder die Breite automatisch auf den hier eingestellten Wert skaliert.
Jetzt liegen die Bilder in der gewünschten Größe vor und können hochgeladen werden. Wenn der Mac OS X-Finder beschreibbare FTP-Volumes unterstützen würde, hätten wir es einfach. Da das aber nicht funktioniert, nehmen wir einen kleinen Umweg über ein Shell-Script. Wir führen ein Shell-Script aus, welches die eben erzeugten Bilder automatisch hochlädt.
Damit das klappt, muss zuvor eine Textdatei erstellt werden, welche die Befehle für die ftp-Kommandozeile beinhaltet. Diese Textdatei wird durch die folgenden Aktionen erstellt:
Das Basisverzeichnis ist bei Shell-Scripts aus Automator heraus immer das aktuelle User-Verzeichnis. Mittels lcd wird also zunächst das temp-Verzeichnis festgelegt, in dem sich die Bilder befinden.
Das anschließende "prompt" schaltet die Abfragen aus, die wir beim nächsten Befehl "mput" sonst erhalten würden.
mput ermöglicht das Hochladen mehrerer Dateien gleichzeitig. Achtung, hier ist zu beachten, dass bei der Dateiendung Groß-/Kleinschreibung unterschieden wird! "*.jpg" ist also nicht gleich "*.JPG". Meistens sind Bilder in iPhoto - gerade wenn sie von einer Digitalkamera kommen - aber mit Dateiendung in Großschrift versehen.
Nun haben wir den Text für die ftp-Kommandos, die Datei muss aber noch geschrieben werden. Dies erledigt schließlich die folgende Aktion:
Ins temp-Verzeichnis wird nun eine Textdatei namens ftp.input geschrieben. Diese kann nun, zusammen mit folgender Aktion verwendet werden:
"Benutzername", "Passwort" und "www.meineadresse.de" sind natürlich durch die eigenen Angaben zu ersetzen. Ebenso ist das Unterverzeichnis "test/" an die eigenen Bedürfnisse anzupassen. Wichtig ist jedoch, dass hinter dem Verzeichnis immer ein abschließendes Slash (/) folgt, sonst erkennt ftp die Angabe nicht als Verzeichnis.
Dieser Befehl verbindet sich sofort mit einem ftp-Server und führt anschließend die in der ftp.input-Datei enthaltenen Befehle aus. Dadurch, dass "quit" als letztes in der Datei steht, trennt sich das Script wieder sauber vom Server.
Jetzt wäre eigentlich alles in Ordnung, wir wollen aber noch eben unseren Müll beseitigen - nämlich unseren temp-Ordner. Wir fragen ihn also mit der folgenden Aktion nochmal explizit ab:
...und schmeißen ihn daraufhin bedenkenlos weg:
Und schon ist unser Dienst fertig und bereit zum Ausprobieren.Zunächst speichern wir ihn mittels Menü "Ablage" > "Sichern".
Jetzt können wir iPhoto starten. Wir wählen ein beliebiges Album, markieren ein paar Bilder und schauen dann mal ins Menü "iPhoto" > "Dienste". Wir finden daraufhin folgenden Eintrag:
Ein Klick und wenige Sekunden (oder Minuten, je nach Umfang) später sind die Bilder hochgeladen. Bei diesen Diensten ist es wichtig, dass man abwartet, bis das Zahnrädchen oben rechts in der Menüleiste verschwindet. Während dieses sich dort dreht, läuft der Dienst.
AusblickDieses Tutorial ist nur die Spitze des Eisbergs und soll zeigen, wie man mit einfachen Mitteln künftig Routineaufgaben schneller und bequemer ausführen kann und dabei auch die Schwächen des Finders sinnvoll umschifft. Natürlich lässt sich so ein Dienst universell einsetzen. Man kann alles mögliche damit hochladen, man kann auch das Zielverzeichnis des Servers abfragen lassen, man kann die Dateiendungen zuvor einheitlich umbenennen etc. Wer ein wenig damit spielt und so etwas ggf. für eigene Zwecke einsetzen kann, wird sicher noch die eine oder andere Idee haben.