PS.Content Asset-Download-Service

PS.Content Asset-Download-Service

Der PS.Content Asset-Download Service ermöglicht es, Assets, die zB. in einem Artikel enthalten sind, herunter zu laden. Dabei können verschiedene Parameter übergeben werden, die steuern, wie das Asset vor dem Herunterladen bearbeitet werden soll.

Zugriff auf den Asset-Download-Service per URL

Der Asset-Download Service ist ein Modul des PS.Content Logik-Servers und kann zusätzlich über den UI-Server aufgerufen werden. Der UI-Server dient hierbei dann als Proxy, um Systemen, die nicht im gleichen Netzwerk stehen, wie der PS.Content Logikserver dennoch den Zugriff zu ermöglichen.

Der Proxy-Zugriff auf den Download-Service lässt sich per IP-Adressfilter (hup.one.content.asset.common.ipAddressFilters4Download) steuern. Normalerweise erfordert der Zugriff eine gültige Benutzersitzung (=Anmeldung in PS.Content). Erfolgt der Zugriff aus einem gesicherten Netzwerk (zB. dem Intranet) kann dieser Bereich so freigegeben werden, dass keine Anmeldung notwendig ist.

Der Download-Service kann über verschiedene URLs aufgerufen werden. Wie diese URLs zu erreichen sind, wird im folgenden kurz beschrieben.

Die URLs zum Asset-Download-Service sind zB. in jedem Artikelexport enthalten:

  • contentUrlIntern = die URL des Download-Service im lokalen Netz.

  • contentUrl = die URL des Download-Service im WWW

  • contentPreviewUrl = die URL des Download-Service, liefert ohne weitere Angaben nur die Vorschau des Assets

 

Außerdem kann der Asset-Download über den UI Server für ein Asset immer über das rote Drag & Drop Icon aufgerufen werden:

URL-Parameter des Asset-Downloads

Parameter

Asset-Typ

Bedeutung

Optional

Default

Parameter

Asset-Typ

Bedeutung

Optional

Default

id

alle

Die ID des herunter zu ladenden Assets. Die ID ist ein BASE64 codierter String, der die UUID sowie die Version des gewünschten Assets enthält. Diese ID kann als Eindeutigkeitsmerkmal für das Caching verwendet werden. (Ist die ID gleich, hat sich am Assets und seinen Metadaten inkl. Bereichen nichts verändert.)

Beispiel für die Asset-ID:

url-codierte id: MGM3ZjA1MzItNjU3NS00ZGUxLWI1Y2EtZjU0YTgwNmJiODVlOzEuMA%3D%3D

entspricht: MGM3ZjA1MzItNjU3NS00ZGUxLWI1Y2EtZjU0YTgwNmJiODVlOzEuMA==

decodiert: 0c7f0532-6575-4de1-b5ca-f54a806bb85e;1.0

nein

-

fillIptc

nur Bilder

Wenn "true" werden die am Asset hinterlegten Metadaten vor dem Download in die IPTC Metadaten des Bildes aufgenommen.

Der Download des Assets wird dadurch minimal verlangsamt. (Die Metadaten werden on the fly geschrieben.)

Der zurückgegebene Dateityp ist immer JPEG - egal, von welchem Typ das Asset vorher war.

ja

false

width

height

nur Bilder

Zielhöhe / -breite des Ausschnitts in Pixel. Wird nur ein Wert (Höhe oder Breite) angegeben, wird der ausgelassene Wert proportional berechnet. Werden beide Werte angegeben, wird der Ausschnitt in der vorgegebenen Größe aus der Mitte des Bildes heraus gebildet.

Der Download des Assets wird unter Umständen minimal verlangsamt. (Liegt kein geeigneter Ausschnitt im Cache, wird der Ausschnitt on the Fly erzeugt.)

Der zurückgegebene Dateityp ist immer JPEG - egal, von welchem Typ das Asset vorher war.

ja

0

cropmode

nur Bilder

Legt fest, ob (bei am Asset vorhandenen Bildbereichen) der Ausschnitt möglichst nah am relevanten Bereich sein soll, oder ob möglichst viel vom eigentlichen Bild gezeigt werden soll.

Siehe Presetkonfiguration (image-processing.crop-presets).

Der Download des Assets wird unter Umständen minimal verlangsamt. (Liegt kein geeigneter Ausschnitt im Cache, wird der Ausschnitt on the Fly erzeugt.)

Der zurückgegebene Dateityp ist immer JPEG - egal, von welchem Typ das Asset vorher war.

ja

enclose

preset

nur Bilder

Liefert das Asset (sofern es ein Bild ist) in der in der Presetkonfiguration (image-processing.crop-presets) hinterlegten Werten zurück.

Je Preset kann die Höhe, Breite, JPEG Qualität und der CropMode bestimmt werden.

Die Preset-Werte des CropMode und der Qualität können in der URL übersteuert werden.

Wird ein Preset angefordert, welches nicht in der Konfiguration existiert, wird entweder das Default-Preset (sofern hinterlegt) oder das original Asset ausgeliefert.

Der Download des Assets wird unter Umständen minimal verlangsamt. (Liegt kein geeigneter Ausschnitt im Cache, wird der Ausschnitt on the Fly erzeugt.)

Der zurückgegebene Dateityp ist immer JPEG - egal, von welchem Typ das Asset vorher war.

Folgende Presets liefert HUP aus: small4x3(320,240,75); medium4x3(800,600); large4x3(1600,1200); small16x9(320,180,75); medium16x9(800,450,75); large16x9(1600,900); teaser(400,320).

ja

-

original

nur Bilder

true | false

true → das Bild wird nicht beschnitten sondern im "original" (gegebenfalls größenreduziert) bereit gestellt. Je nach Konfiguration bzw zusätzlicher Parameter (max-pixels) wird die Bildgröße auf eine maximale Pixelanzahl beschränkt
       → die Parameter width, height, cropmode und preset werden in diesem Modus nicht ausgewertet

ja

false

max-pixels

nur Bilder

wird nur ausgewertet, falls original = true

beschränkt die Anzahl der Pixel des zur Verfügung gestellten Bildes (Einheit: Pixel)

übersteuert einen ggf. konfigurierten Standardwert für maximalen Pixel

ja

-

format

nur Bilder

übersteuert, falls möglich, die normale Logik zur Bestimmung des ausgelieferten Bildformats

Unterstützte Werte bzw Formate: webp, jpg, bmp, png, tiff, gif

ja

-

no-upscale

nur Bilder

verhindert das Hochskalieren der Bilder, falls der Quellauschnitt zu klein ist.

ja

false

original-max-allowed-area

nur Bilder

gibt das Original Bild abzüglich des Bereichs ausserhalb des roten Rahmens zurück (width, height oder preset wird ignoriert)

ja

false

area-selection-context

nur Bilder

Name des Bereichsauswahl-Kontext. Steuert, welche Bildbereichauswahl genutzt werden soll. Gibt es für den Kontext keine Bereichsauswahl, dann wird der die standard Bereichsauswahl genutzt

ja

-

URL-Parameter für Asset-Previews

Parameter

Asset-Typ

Bedeutung

Optional

Default

Parameter

Asset-Typ

Bedeutung

Optional

Default

id

alle

Die ID des herunter zu ladenden Assets.

vergleiche Download-Parameter id

nein

-

preset

nur Bilder

Liefert das Asset (sofern es ein Bild ist) in der in der Presetkonfiguration (image-processing.crop-presets) hinterlegten Werten zurück.

vergleiche Download-Parameter preset

ja

-

size

nur Bilder

Zielhöhe / -breite des Ausschnitts in Pixel. Der Ausschnitt wird in der vorgegebenen Größe aus der Mitte des Bildes heraus gebildet.

vergleiche Download-Parameter width-height

ja

0

width
height

nur Bilder

Zielhöhe / -breite des Ausschnitts in Pixel. Wird nur ein Wert (Höhe oder Breite) angegeben, wird der ausgelassene Wert proportional berechnet. Werden beide Werte angegeben, wird der Ausschnitt in der vorgegebenen Größe aus der Mitte des Bildes heraus gebildet.

Wird nur ausgewertet, wenn size nicht angegeben ist

vergleiche Download-Parameter width-height

ja

0

draw-selection

nur Bilder

Zeichnet den relevanten und nicht-relevanten Bildbereich in das Vorschaubild.

Der zurückgegebene Dateityp ist immer SVG - egal, von welchem Typ das Asset vorher war.

ja

false

draw-selection-rasterized

nur Bilder

Ist die Option draw-selection aktiv, kann hiermit ein rasterisiertes Vorschaubild mit den relevanten und nicht-relevanten Bildbereichen erzeugt werden.

Der zurückgegebene Dateityp hängt vom Asset-Bildtyp ab.

ja

false

manipulations

nur Bilder

JSON-serialisierter String mit Befehlen (Commands) zur Bildmanipulation - z.B. Rotation eines Bildes.

ja

-

Statische & Default Asset-Presets

Folgende Presets liefert HUP als Standard mit dem PS.Content System aus.

Name

Default

Beschreibung

Anmerkung

Name

Default

Beschreibung

Anmerkung

vector

 

Liefert SVG und PDF Dateien im Originalformat aus.

Wird das Preset auf ein nicht-Vektor Asset angewendet, greift das Default Preset.

favicon

 

JPEG 32x32, 100%

 

extrasmall4x3

 

JPEG 320x240, 75%

 

small4x3

 

JPEG 640x480, 75%

 

medium4x3

 

JPEG 800x600, 75%

 

large4x3

 

JPEG 1600x1200, 75%

 

extrasmall16x9

 

JPEG 320x180, 75%

 

small16x9

 

JPEG 640x360, 75%

 

medium16x9

 

JPEG 800x450, 75%

 

large16x9

 

JPEG 1600x900, 75%

 

teaser

 

JPEG 400x320, 75%

Ausschnitt nah am relevanten Bereich.

teaser-expand

 

JPEG 400x320, 75%

Ausschnitt zeigt möglichst viel Bild.

thumbnail

 

JPEG 100px Breit, 75%

 

fullhd

JPEG 1920px Breit, 75%

 

width###

 

JPEG ###px Breit, 75%

### = 200, 400, 600, 800, 1000, 1200

height###

 

JPEG ###px Hoch, 75%

### = 200, 400, 600, 800, 1000, 1200

square###

 

JPEG ###px Quadratisch zugeschnitten, 75%

### = 200, 400, 600, 800, 1000, 1200

Handhabung von Bildbereichen am Asset

Handelt es sich bei dem herunter zu ladenden Asset um ein Bild (bzw. eine Grafik) können Ausschnitte des Bildes herunter geladen werden. Dabei beachtet der Service die in PS.Content gewählten Bildbereiche.

Wie dies konkret umgesetzt ist, wird im folgenden beschrieben.

Folgendes Bild dient als Beispiel. In jedem Falle soll das Schild im grünen Rechteck zu sehen sein. Nicht zu sehen sein soll alles außerhalb des roten Rechtecks.

 

Beispiele für Aufrufe des Download-Service:

Aufruf

Ergebnis

Erklärung

Aufruf

Ergebnis

Erklärung

width=400

Das Bild wird auf 400px Breite beschnitten.

Die Höhe wird proportional zum original berechnet.

Der Ausschnitt bleibt nahe am relevanten Bereich.

width=400

cropmode=expand

Das Bild wird auf 400px Breite beschnitten.

Die Höhe wird proportional zum original berechnet.

Der Ausschnitt zeigt möglichst viel vom Bild.

width=400

height=400

Das Bild wird auf 400x400px beschnitten.

Der Ausschnitt bleibt nahe am relevanten Bereich.

width=400

height=400

cropmode=expand

Das Bild wird auf 400x400px beschnitten.

Der Ausschnitt zeigt möglichst viel vom Bild.

width=2500

height=400

Das Bild wird auf 2500x400px beschnitten.

Der Ausschnitt bleibt nahe am relevanten Bereich.

Da der Wunsch nicht erfüllbar ist (zu wenig Bildpixel in der Breite), wird der Rest mit einer konfigurierten Farbe gefüllt.

width=2500

height=400

cropmode=expand

Das Bild wird auf 2500x400px beschnitten.

Der Ausschnitt zeigt möglichst viel vom Bild.

Da der Wunsch nicht erfüllbar ist (zu wenig Bildpixel in der Breite), wird das Bild in den Relevanten Bereich hinein angeschnitten.

 Ist kein Bereich am Asset gespeichert, wird das Bild wie für Web-Browser üblich aus der Mitte heraus auf "möglichst viel Bild" beschnitten.

Lage des Ausschnitts bezogen auf den maximal möglichen Bereich eines Bildes

  • Url: HOST/service/asset/calc-bounding-box-of-crop-in-max-available-area

  • Parameter: gleich wie die Parameter der Schnittstelle zum Herunterladen eines Bildes

  • Rückgabewert: Bounding-Box mit relativen Werten bezogen auf die Länge (0 -1) und Höhe (0 - 1) des maximalen Bereichs

    { "topLeftX": 0.0, "topLeftY": 0.0, "bottomRightX": 1.0, "bottomRightY": 1.0 }
  • Anmerkungen:

    • würde der Download mit den gleichen Parametern kein Crop erzeugen, dann gibt der Service Bad-Request zurück

    • würde der Download mit den gleichen Parametern kein Rasterbild erzeugen, dann gibt der Service Bad-Request zurück