WebDAV forside-server

Serveren hvor de generiske forsider gemmes skal være en "CORS-enabled WebDAV-server med basic authentification".

Det er let at tilgå filerne, da der som regel er en WebDAV-klient indbygget i operativsystemet.

  • Under Ubuntu Linux åbner man filsystemet(Nautilus), klikker "Other Locations", og indtaster eksempelvis davs://ballerup@data.forsider.dk/ballerup ved "Enter server address" og indtaster kodeordet når man bliver spurgt.
  • Under Windows 10 kan man forbinde til serveren ved at højreklikke på "Network" og vælge "Map Network Drive...", og eksempelvis indtaste folder: https://data.forsider.dk/ballerup, brugernavn: ballerup samt kodeord.
  • Under OS X vælger åbner man Finder, og "Connect to Server" i "Go" menu'en, – serveradressen skal starte med https. (jeg har ikke testet det på OS X).
  • ... og der er en masse andre metoder at tilgå dem.

Forsiderne ligger i følgende mappestruktur.

  • covers/ – de enkelte forsider + beskrivelse
    • 00/, 01/, 02/, ..., 99/, og other/ – mapper der indeholder forsiderne. Mappen for forsiden er de sidste to cifre i ting-objektets id, eller other hvis id'et ikke slutter på cifre.
      • 870970-basis:28125755.jpg eller lignende – det genererede forside-billede
      • 870970-basis:28125755.json eller lignende – data om hvordan forsidebilledet er genereret
  • source – info om kørsel af forside-generering
    • rule_HxZnCxtjckVmGxJweoOS.json eller lignende – info om en forside-kørsel
    • img_4M6QYJGd5RKWd0s914LH.json eller lignende – info om billede brugt til forsidekørsel

Det er kun .jpg billedet der er nødvendigt for at tilføje billedet til forsideservicen.

Overførsel til forsideservice

De genererede forsidebilleder ligger i covers/*/*.jpg hvor filen er navngivet med Pid'en på materialet.

Biblioteket kan dele adgangen til forside-serveren med forsideservice-leverandør, – som så kan tilføje billederne til deres forsideservice.

Drift af WebDAV forside-server

Forside-serveren er off-the-shelf software – jeg bruger en nginx med WebDAV-udvidelse, konfigureret i stil med dette:

server {
    server_name example.com;
    root /where/to/store/on/server;

    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    location / {
        limit_except GET OPTIONS {
            auth_basic "realm";
            auth_basic_user_file /some/user/auth/.htpasswd;
        }

        dav_methods     PUT DELETE MKCOL COPY MOVE;
        dav_ext_methods PROPFIND OPTIONS;
        dav_access      user:rw group:rw all:r;
        create_full_put_path on;
    }

    add_header 'Access-Control-Allow-Origin' '*';
    add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE, MKCOL, COPY, MOVE';
    add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization';
    add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';

        ssl_certificate ...
}

Men det burde virke lige så godt med andre WebDAV servere (eksempelvis Apache mod_dav, Sabre (PHP), NextCloud, sågar IIS eller en af de mange andre), så længe at CORS også er korrekt konfigureret.