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.