sFTP¶
Aus technischen Gründen wird die Datenablieferung via sFTP nicht über
die gewohnte Basis-Adresse, sondern vielmehr über sl61.kobv.de abgewickelt.
Der allgemeine Zugang, z.B. in einer Unix-Shell (bash, tcsh, etc.),
lautet wie folgt:
$ sftp [Account-ID]@sl61.kobv.de
[Account-ID]@sl61.kobv.de's password: [API-Key]
sftp> pwd
Remote working directory: /xfer
sftp> quit
In diesem Beispiel liefert der sFTP-Befehl pwd das aktuelle Verzeichnis
auf dem entfernten Rechner sl61.kobv.de nach dem Einloggen. Das Verzeichnis
ist das Standard-Verzeichnis für jeden sFTP-Benutzer von DeepGreen und darf
unter keinen Umständen verändert werden! Alle anderen, interaktiven sFTP-Befehle
stehen ebenfalls zur Verfügung (s. dazu z.B. die entsprechenden man-pages auf
Unix-Systemen: man sftp). Darüberhinaus ist es natürlich möglich, mit den
entsprechenden Zugangsangaben direkt (.zip-)Dateien über das sFTP-Protokoll
einzuspielen. Wichtig ist in beiden Fällen, dass pro Artikel nur eine .zip-Datei
mit flacher Hierarchie verwendet werden, d.h. es dürfen keine verschachtelten
Verzeichnisstrukturen in der .zip-Datei enthalten sein.
Als Konto-Name für den Zugang ist die individuelle DeepGreen-Account-ID zu verwenden,
zu finden auf der Webseite des DeepGreen-Kontos. Der zugehörige API-Schlüssel
(API-Key) als Passwort ist ebenfalls dort im DeepGreen-Konto angegeben.
Bermerkung : Der sFTP-Zugang ist ausschließlich nur für Verlagskonten
freigeschaltet. Für Repositorienkonten würde dieser Zugang ohnehin wenig Sinn machen.
Artikeldaten an DeepGreen liefern¶
Eine typische sFTP-Session zur Abliefieferung von Metadaten (und evtl. Volltext)
sieht folgendermaßen aus:
$ echo "put artikel.zip" | sftp [Account-ID]@sl61.kobv.de
[Accout-ID]@sl61.kobv.de's password: [API-Key]
sftp> put article.zip
Falls auf dem lokalen Unix-System sshpass installiert ist, kann auf die interaktive
Eingabe des API-Schlüssels auch verzichtet werden:
$ echo "put artikel.zip" | sshpass -p [API-Key] sftp [Accout-ID]@sl61.kobv.de
sftp> put artikel.zip
In beiden Beispielen wird angenommen, dass sich die zu übertragene .zip-Datei
artikel.zip im aktuellen Verzeichnis des lokalen Systems befindet.
Die Variante mit sshpass ist u.U. in einem Skript sehr nützlich, wenn mehrere
.zip-Dateien, wie hier in einer Schleife über den Pfad some/path/*.zip, auf
einmal gesendet werden sollen:
#! /usr/bin/env bash export SSHPASS="API-Key" for f in some/path/*.zip ; do echo put "$f" done | sshpass -e sftp "Account-ID@sl61.kobv.de" unset SSHPASS
Aufbau der .zip-Dateien der Artikeldaten¶
Die .zip-Dateien, die DeepGreen verarbeiten kann, sollten folgenden Aufbau haben:
Archive: pfad/artikel.zip
Length Date Time Name
--------- ---------- ----- ----
62225 2016-01-08 15:58 art123456789.xml
223902 2016-01-08 15:58 art123456789.pdf
--------- -------
286127 2 files
Dabei sollte die .xml-Datei im NISO JATS
(Journal Publishing-Variante (engl.))- oder RSC DTD
(Guidelines on the capture of RSC journal articles (engl.))-
Format vorliegen. Darüberhinaus könnten noch weitere Binärdateien (Grafiken,
Tabellen, usw.) im .zip-Archiv enthalten sein. Die Dateinamen im Einzelnen sind
dabei unwichtig. Im Wesentlichen kommt es auf die Endkürzel .xml, .pdf, usw. an
und die Verzeichnisstruktur im Archiv muss flach sein, d.h. es dürfen keine
Unterverzeichnisse in der .zip-Datei enthalten sein.
Bemerkung : Genau(!) eine Datei in einer DeepGreen-.zip-Datei muss die Endung .xml tragen.