[Kobv-opus-tester] SWORD

Bettina Lapp bettina.lapp at bibliothek.uni-augsburg.de
Do Sep 27 12:52:55 CEST 2018


Lieber Hr. Schwarten, liebe Kolleginnen und Kollegen,

wir nutzen die SWORD-Schnittstelle hier in OPUS Augsburg. Ich kann mal
meine Erfahrungen bzw Einstellungen hier teilen:

> In der Doku unter https://www.opus-repository.org/userdoc/import/sword.html steht "Das voreingestellte SWORD Service Dokument enthält (unter <collection href="..."> eine falsche Deposit Adresse. Die korrekte Angabe, die in href="..." stehen sollte, lautet: https://user@password@[OPUS4-Servername]/[OPUS4-Instanz]/sword/deposit".
> Heißt dies, dass ich in der Datei .../modules/sword/models/ServiceDocument.php unter "private function setImportCollection($collectionNode)" href anpassen muss?

ich hab jedenfalls nichts angepasst. Der SWORD-Client greift sowieso
immer authentifiziert zu, sowohl auf das servicedocument als auch auf
die deposit-url. Keine Ahnung, ob diese Tatsache im servicedocument
angegeben werden muss.

> 2. Die Sammlung import und der/die User/Nutzerrolle "sworduser" werden ja bei der OPUS 4.6.x Installation angelegt. Muss die Sammlung selbst sichtbar sein für den Import?
nein

> 3. Ein Test zum Ingest von  testopus.zip (opus.xml + test.pdf)  mit  curlich glaube man braucht schon einen sword-client irgendeiner Art, nicht
nur einen http-client.

Bei uns gibt es die Sammlung Import, Sammlungseintrag 01 Import, nicht
sichtbar. Außerdem gibt es einen user samt passwort nur für den
SWORD-Import, dieser user hat ausschließlich Zugriff auf das sword-Modul.

In der config.ini:

; SWORD related configuration settings
; ====================================

; XML-Ausgabe der SWORD-Schnittstelle formattieren ("pretty printing")
sword.prettyXml = false

; Inhalt des Elements dcterms:abstract (im Service Document für die
Default Collection)
sword.collection.default.abstract = 'OPUS Augsburg SWORD Import'

; Inhalt des Elements sword:collectionPolicy (im Service Document für
die Default Collection)
sword.collection.default.collectionPolicy = ''

; Inhalt des Elements sword:treatment (im Service Document für die
Default Collection)
sword.collection.default.treatment = ''

; Definition der Default OPUS Collection, der die via SWORD importierten
Dokumente
; zugeordnet werden
; Dieser Parameter muss zwingend in der config.ini definiert werden,
damit die
; SWORD-Schnittstelle funktioniert
; Hier muss die Nummer einer Collection innerhalb der Collection Role
"Import"
; angegeben werden
; der Name dieser Collection erscheint im Service Document im Element sword:
sword.collection.default.number = '01'

; contains the URI and version of the server software
sword.generator = 'OPUS 4'
; contains either a human-readable statement describing treatment the
deposited
; resource has received or a URI that dereferences to such a description.
sword.treatment = ''

; MIME-Types der Dateien, die importiert werden können
filetypes.pdf.mimeType = 'application/pdf'
filetypes.txt.mimeType = 'text/plain'
filetypes.htm.mimeType = 'text/html'
filetypes.html.mimeType = 'text/html'
;======

Zugriff mittels SWORD php-client Github-Repository
https://github.com/swordapp/swordapp-php-library - die v1 library weil
OPUS nur SWORD v1.3 unterstützt.

Das zu importierende Dokument muss opus.xml heißen und im
OPUS-Importformat sein, kann man z.B. zusammen mit pdf in ein zip-Paket
packen. Hier ist mal ein Beispiel, gnadenlos von dem testclient abgekupfert:

<Codebeispiel>
// Create the zipped package (force an overwrite if it already exists)
  $zip = new ZipArchive();
  $zip->open($importdir . '/' . $zipfile, ZIPARCHIVE::CREATE |
ZIPARCHIVE::OVERWRITE);
  $zip->addFile($importdir . '/' . $xmlfile, $xmlfile);
  if ($pdf) { $zip->addFile($importdir . '/' . $pdf, $pdf); }
  $zip->close();

        // The URL of the service document
        $saurl =
"https://opus.bibliothek.uni-augsburg.de/opus4/sword/servicedocument";
        // The user (if required)
        $sauser = "sworduser";
        // The password of the user (if required)
        $sapw = "swordpassword";
        // The on-behalf-of user (if required)
        //$saobo = "someone at somewhere.org";
        $saobo = "";
        // The URL of the example deposit collection
        $sadepositurl =
"https://opus.bibliothek.uni-augsburg.de/opus4/sword/deposit";
        // The file to deposit
        $safile = $importdir . '/' . $zipfile;
        // The content type of the test file
        $sacontenttype = "application/zip";
        // The packaing format of the test fifle
        $saformat = "http://www.opus-repository.org/sword/opus4package-v1";

        require("./swordapp/swordappclient.php");
        $sac = new SWORDAPPClient();

        // get servicedocument
        $sasdr = $sac->servicedocument($saurl, $sauser, $sapw, $saobo);
        print "<p class=\"text-info\">Request Servicedocument HTTP
status code: " . $sasdr->sac_status . " (" . $sasdr->sac_statusmessage .
")</p>\n";
        print "<p class=\"text-info\">About to deposit file (" . $safile
. ") to " . $sadepositurl . "</p>\n";
        $sadr = $sac->deposit($sadepositurl, $sauser, $sapw, $saobo,
$safile, $saformat, $sacontenttype);
        print "<p class=\"text-info\">Request Deposit HTTP status code:
" . $sadr->sac_status . " (" . $sadr->sac_statusmessage . ")</p>\n";
        if ($sadr->sac_status == 201) {
           print "<p class=\"text-success\"> - ID: " . $sadr->sac_id .
"<br />\n";
           print " - Title: " . $sadr->sac_title . "<br />\n";
         ....
        }

</Codebeispiel>

Ich hoffe, das war hilfreich, Sie können mich gerne anmailen oder
anrufen für weitere Infos.

herzliche Grüße, Bettina Lapp

Am 27.09.2018 um 09:19 schrieb Martin Schwarten:
> Liebe Kolleginnen und Kollegen,
> 
> ein zweiter Versuch zum Thema. Gibt  es wirklich keinen der SWORD in
> OPUS nutzt bzw. Erfahrungen mit dieser Schnittstelle hat und etwas dazu
> sagen/schreiben kann?
> 
> 
> Viele Grüße
> Martin Schwarten
> 

-- 
Universitätsbibliothek Augsburg
Referat IT der Bibliothek
86135 Augsburg
Tel. +49 821 598-5370
Fax  +49 821 598-5407
bettina.lapp at bibliothek.uni-augsburg.de
https://www.bibliothek.uni-augsburg.de


Mehr Informationen über die Mailingliste Kobv-opus-tester