OJS und DNB / xMetaDissPlus

@florianruckelshausen

Wir haben OpenSSL 1.0.1t, also sogar älter.

Könnt Ihr mal das Script unten ausprobieren? Bei dem Aufruf in der Kommandozeile bekomme ich auch die Fehlermeldung “curl: (51) SSL peer certificate or SSH remote key was not OK”
Mit dem Script funktioniert es bei mir.

<?php
		$curlCh = curl_init();

		curl_setopt($curlCh, CURLOPT_UPLOAD, true);
		curl_setopt($curlCh, CURLOPT_HEADER, true);
		curl_setopt($curlCh, CURLOPT_RETURNTRANSFER, true);
		curl_setopt($curlCh, CURLOPT_PROTOCOLS, CURLPROTO_SFTP);

		$filename="eintragen";// absoluten Pfad bis zur tar-Datei
		
		$fh = fopen($filename, 'rb');
		$username = "eintragen"; 
		$password = "eintragen";
		$folderId = "eintragen";

		curl_setopt($curlCh, CURLOPT_URL, 'sftp://@hotfolder.dnb.de/'.$folderId.'/'.basename($filename));
		curl_setopt($curlCh, CURLOPT_PORT, 22122);
		curl_setopt($curlCh, CURLOPT_USERPWD, "$username:$password");
		curl_setopt($curlCh, CURLOPT_INFILESIZE, filesize($filename));
		curl_setopt($curlCh, CURLOPT_INFILE, $fh);
		$response = curl_exec($curlCh);
		$curlError = curl_error($curlCh);
		
		curl_close($curlCh);
		fclose($fh);
?>

Ich habe das Skript entsprechend angepasst und unsere Daten eingetragen. Es wird ohne weiteres ausgeführt und gibt keine Fehlermeldung aus. Allerdings wird keine Datei hochgeladen? Trage ich falsche Zugangsdaten ein, kommt auch keine Fehlermeldung.

Schaue ich auf die PHPinfo Ausgabe, kommt zu curl:

curl

cURL support => enabled
cURL Information => 7.60.0
Age => 4
Features
AsynchDNS => Yes
CharConv => No
Debug => No
GSS-Negotiate => No
IDN => Yes
IPv6 => Yes
krb4 => No
Largefile => Yes
libz => Yes
NTLM => Yes
NTLMWB => Yes
SPNEGO => Yes
SSL => Yes
SSPI => No
TLS-SRP => Yes
HTTP2 => Yes
GSSAPI => Yes
KERBEROS5 => Yes
UNIX_SOCKETS => Yes
PSL => Yes
Protocols => dict, file, ftp, ftps, gopher, http, https, imap, imaps, ldap, ldaps, pop3, pop3s, rtsp, scp, sftp, smb, smbs, smtp, smtps, telnet, tftp
Host => x86_64-suse-linux-gnu
SSL Version => OpenSSL/1.1.0h
ZLib Version => 1.2.11
libSSH Version => libssh/0.7.5/openssl/zlib

@florianruckelshausen

Ich wollte mit dem Script erst schauen, ob dort der Fehler auftritt und das tut er scheinbar.

Mit
echo curl_setopt($curlCh, CURLOPT_VERBOSE, true);

(einfach bei den Optionen einfügen) wird auch eine Ausgabe gemacht.

Bei mir ist das:

1* Hostname was NOT found in DNS cache

  • Trying 193.175.100.143…
  • Connected to hotfolder.dnb.de (193.175.100.143) port 22122 (#0)
  • SSH MD5 fingerprint: 91f4dd9a4db13790224256b522296c73
  • SSH authentication methods available: password
  • Initialized password authentication
  • Authentication complete
  • We are completely uploaded and fine
  • Connection #0 to host hotfolder.dnb.de left intact

Ok das habe ich oben eingebaut und bekomme:

@florianruckelshausen

mmh, das sagt mir leider gar nichts …

Vielleicht liegt es doch am SSL. Klappt es mit:

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);

?

Ja so klappt es ($ch habe ich durch $curlCh ersetzt). D.h. wir tragen den Code erstmal so in die DNBExportPlugin.inc.php als manuelle Änderung an der entsprechenden Stelle ein. Ich dokumentiere mal das Problem für uns, damit wir in ein paar Monaten noch wissen, was wir gemacht haben. Ggf. können wir ja später nochmal schauen, ob das Verhalten so bleibt, wenn wir etwas an der Betriebssystemschicht ändern.

Die DNB hat mir übrigens eine Rückmeldung zu den tar-Dateien für die einzelnen Artikel geschrieben, die ich manuell hochgeladen hatte. Die Ablieferung kann nicht akzeptiert werden, weil

  1. In den tar-Dateien werden Unterverzeichnisse mit dem Namen “PaxHeaders.ZZZZ” angelegt, wobei ZZZZ vier Zahlen sind. Diese Ordner werden zweimal angelegt, einmal auf der obersten Ebene und im content-Unterverzeichnis, in dem auch das Volltext-PDF liegt.
    Hier ein Beispiellink zu einer tar-Datei: JLUbox

  2. Außerdem schreibt die DNB, dass die Persistent Identifiers nicht im richtigen Feld geliefert werden und dass sie aber schon mit euch im Kontakt stehen. Das trifft wohl die letzten Posts bei [NEWS] DNB-Export Plugin für OJS 2.4.8 verfügbar - #4 by zuphilip . Wir vergeben zumindest bei der Zeitschrift, die DOI tatsächlich auf Galley-Ebene, wie mir gerade bewusst geworden ist. Der Grund ist, dass die Artikel als HTML und PDF publiziert werden, und da erscheint mir eine gemeinsame DOI sinnvoll.

@florianruckelshausen

Sorry, hat etwas länger gedauert diesmal.

Gut, dass es jetzt zumindest so läuft. Ich werde weiter versuchen herauszufinden, woran es liegt und dann vermutlich auf Dich zukommen für Tests.

Zu den PaxHeaders: Das hatten wir teilweise auch und ist davon abhängig welches Entpackungstool man verwendet (bei mir erscheinen die nicht). Die DNB hat mit den Paketen kein Problem, dennoch habe ich auf die Issue-Liste für den nächsten Release geschrieben, das zu checken. Es scheint mit POSIX vs. GNU zusammenzuhängen.

Zu den Persistent Identifiers: Ja, genau, das besprechen wir derzeit mit der DNB. Das Problem ist, dass OJS diese beiden Ebenen hat und die DNB nicht. Sie erwartet alle PI auf einer Ebene, die eher der Galleyebene entspricht. Aber Artikel-PI in das Feld für Galleys schreiben finde ich nicht so gut … Wir können das gern hier im Forum besprechen oder auch per Mail.

viele Grüße,
Carola

Edit: Ich habe noch einen Hinweis von Bozana gefunden:

Bei

folgende Zeile hinzufügen:

$tarCommand .= ' --format=gnu';

Könntest du das bei mir ausprobieren? Da ich den Fehler bei mir nicht reprodieren kann, kann ich es auch leider nicht testen.

viele Grüße,
Carola

Ist schon jemand auf OJS 3.1.2 umgestiegen und hat das Plugin getestet?

Wir haben unser Testsystem auf 3.1.2 aktualisiert und erhalten bei Aufruf des Export Plugins nur folgende Fehlermeldung

Warning: Declaration of DNBExportPlugin::getExportPath($journalId, $currentExportPath = NULL, $exportContentDir = NULL) should be compatible with ImportExportPlugin::getExportPath() in /srv/www/ojs/ojs/plugins/importexport/dnb/DNBExportPlugin.inc.php on line 549 

Warning: Declaration of DNBSettingsForm::fetch($request = NULL, $template = NULL) should be compatible with Form::fetch($request, $template = NULL, $display = false) in /srv/www/ojs/ojs/plugins/importexport/dnb/classes/form/DNBSettingsForm.inc.php on line 20 

Warning: filemtime(): stat failed for lib/pkp/templates/plugins/importexport/dnb/templatesindex.tpl in /srv/www/ojs/ojs/lib/pkp/classes/template/PKPTemplateResource.inc.php on line 51 

Fatal error: Uncaught --&gt; Smarty: Unable to load template 'app:plugins/importexport/dnb/templatesindex.tpl' &lt;-- thrown in /srv/www/ojs/ojs/lib/pkp/lib/vendor/smarty/smarty/libs/sysplugins/smarty_internal_template.php on line 195

Ich weiß nicht, ob das ein generelles Problem ist oder nur in unserem Testystem auftritt. Ich habe das DNB-Plugin (für Version 3.1.1.1) auch neu installiert, das ändert aber nichts an der Fehlermeldung.

@bibliothekswelt

Sorry wegen der Antwortzeit, ich hatte einen schön langen Urlaub :-).

Dass das Plugin auf 3.1.2 nicht läuft, haben wir schon bemerkt. Da wir es eh nun eh anpassen, werden wir das alles zusammen erledigen. Vielen Dank für die Fehlermeldung, wir werden das aufnehmen und bei der Anpassung einfließen lassen. Da wir sie hier m.E. noch nicht hatten, werde ich ggf. nachfragen.

Von der DNB habe ich leider keine Rückmeldung bekommen bzgl. des Vorschlags mit den Multi-Dateiobjekten bekommen. Da die Anfrage nun schon einen Monat alt ist, habe ich heute noch einmal nachgefragt.

viele Grüße,
Carola

@carola

Ich habe festgestellt, dass das DNB-Export-Plugin nach Update auf OJS 3.1.2.1 in unseren Installationen überhaupt nicht mehr zur Verfügung steht und auch der Ordner unter “plugins/importexport/” das Update nicht überlebt hat. Hängt das mit der Überarbeitung zusammen?

Hallo Sebastian,

das DNB Plugin ist nicht für die 3.1.2 entwickelt worden. Ein Kollege hat es dort einmal versuchsweise installiert und mir schon rückgemeldet, dass eine Anpassung notwendig sein wird.

Warum das Plugin nicht mehr da ist, kann ich so spontan nicht sagen. Ich dachte eigentlich, was das Upgrade-Script nicht kennt, lässt es in Ruhe.

Die DNB hat sich immer noch nicht zurückgemeldet, trotz Nachfrage. D.h. momentan kann das Plugin eh nicht verwendet werden. Eine Überarbeitung können wir erst machen, wenn das Metadaten-Mapping mit der DNB geklärt ist. Ich werde noch einmal eine Erinnerungsmail schreiben und hoffe, dass ich nach meinem Urlaub loslegen kann.

viele Grüße,
Carola

Hallo zusammen,

gibt es Neuigkeiten in Bezug auf die Weiterentwicklung des DNB-Export-Plugins? Da wir die PI auf Artikel- und nicht auf Galleyebene vergeben, sind wir ebenfalls an einer Weiterentwicklung des Plugins interessiert.

Danke und herzliche Grüße,
Michael

Hallo @adm_sub,

das Plugin ist fertiggestellt, aber noch nicht abschließend getestet, wir mussten es aus Zeitmangel wieder beiseite legen. Da sich die Anfragen häufen, haben wir es gestern wieder herausgeholt und wollen nächste Woche den abschließenden Test mit der DNB machen. Nachfragen lohnt sich also!

viele Grüße,
Carola

2 Likes

Hallo @carola,
das sind ja tolle Nachrichten! Vielen Dank für Eure wertvolle Arbeit!

Hallo @carola,
gibt es schon Neuigkeiten in Bezug auf das DNB-Export-Plugin?
Danke und herzliche Grüße,
Michael

Hallo @carola,
gibt es schon Neuigkeiten bezüglich der DNB Plugin Version für OJS3.1.2.4?
Außerdem habe ich in einem anderen Forenbeitrag noch einige Fragen bezüglich des Status einiger alter OJS-DE Plugins gestellt. Können Sie dazu eventuell etwas sagen?

Schöne Grüße,
Nemo Grippa

Hallo @ngrippa,

leider keine guten Neuigkeiten. Das Plugin ist jetzt von uns getestet und wir haben eine erste Ablieferung an die DNB durchgeführt, aber die zuständige Kollegin hat jetzt Urlaub und wenn sie zurück ist, bin ich im Urlaub. Daher wird es noch eine Weile dauern, bis das Plugin eingesetzt werden kann.

viele Grüße,
Carola

Hallo @carola,

auch wenn gerade überall der Ausnahmezustand herrscht, steht die Veröffentlichung unserer kommenden Ausgabe in 14 Tagen an. Daher möchte ich noch einmal nachhaken: Gibt es schon Neuigkeiten in Bezug auf das DNB-Plugin?

Vielen Dank, beste Grüße und bleibt gesund,
Michael

Hallo @adm_sub,

die DNB ist uns sehr entgegengekommen und wir haben es doch noch geschafft, das Plugin abschließend zu testen. Wir haben auch bereits regulär damit abgeliefert. Nur den Release haben wir nicht mehr geschafft, sorry. Ich bin diese Woche noch im Urlaub, danach machen wir den Release. Ihr könnt das Plugin gern schon testen: GitHub - ojsde/dnb at ojs-stable-3_1_2, aber bitte bedenken: es ist noch nicht der Release, ich muss erst noch prüfen, ob alle Commits im Branch sind!

Feedback ist immer gern gesehen!

viele Grüße,
Carola

Hallo @carola,

danke für die guten Neuigkeiten! Ich warte mit dem Testen noch bis zum offiziellen Release.

Viele Grüße,
Michael