Bearbeta resurser med mediehanterare och arbetsflöden processing-assets-using-media-handlers-and-workflows
Adobe Experience Manager Assets innehåller en uppsättning standardarbetsflöden och mediehanterare för att bearbeta resurser. Ett arbetsflöde definierar en typisk resurshanterings- och bearbetningsuppgift och delegerar sedan de specifika åtgärderna till mediehanterarna, till exempel generering av miniatyrer eller metadataextrahering.
Ett arbetsflöde kan definieras som körs automatiskt när en resurs av en viss typ eller ett visst format överförs till servern. Bearbetningsstegen definieras som en serie Experience ManagerAssets-mediehanterare. Adobe Experience Manager innehåller inbyggda hanterare, och mer kan vara antingen skräddarsydd eller definieras genom att delegera processen till en kommandoradsverktyg.
Mediehanterare är tjänster i Experience Manager Assets som utför specifika åtgärder för resurser. När till exempel en MP3-ljudfil överförs till Experience Manager utlöses en MP3-hanterare som extraherar metadata och skapar en miniatyrbild. Mediehanterare används med arbetsflöden. De vanligaste MIME-typerna stöds i Experience Manager. Du kan utföra specifika åtgärder på resurser genom att göra något av följande
- Utöka eller skapa arbetsflöden.
- Utöka eller skapa mediehanterare.
- Inaktivera eller aktivera mediehanterare.
Standardmediehanterare default-media-handlers
Följande mediehanterare är tillgängliga i Experience Manager Assets och hanterar de vanligaste MIME-typerna:
- application/pdf
- program/illustrator
Viktigt - När du överför en MP3-fil är det bearbetas med ett tredjepartsbibliotek. Biblioteket beräknar en icke korrekt ungefärlig längd om MP3 har variabel bithastighet (VBR).
- application/java-archive
- application/zip
- image/gif
- bild/png
- application/photoshop
- image/jpeg
- bild/tiff
- image/x-ms-bmp
- image/bmp
- application/vnd.openxmlformats.wordbehandlingml.document
- application/vnd.openxmlformats-officedocument.spreadsheet.etml.sheet
- application/vnd.openxmlformats.presentationml.presentation
Alla hanterare utför följande uppgifter:
- extrahera alla tillgängliga metadata från resursen.
- skapa en miniatyrbild av resursen.
Det går att visa de aktiva mediehanterarna:
- I webbläsaren går du till
http://localhost:4502/system/console/components
. - Klicka på länken
com.day.cq.dam.core.impl.store.AssetStoreImpl
. - En lista med alla aktiva mediehanterare visas. Till exempel:
Använda mediehanterare i arbetsflöden för att utföra åtgärder på resurser using-media-handlers-in-workflows-to-perform-tasks-on-assets
Mediehanterare är tjänster som används med arbetsflöden.
Experience Manager har vissa standardarbetsflöden för att bearbeta resurser. Öppna arbetsflödeskonsolen och klicka på Models tab: de arbetsflöden som börjar med Experience Manager Assets är resursspecifika.
Befintliga arbetsflöden kan utökas och nya kan skapas för att bearbeta resurser enligt specifika krav.
I följande exempel visas hur du förbättrar AEM Assets Synchronization arbetsflöde så att delresurser genereras för alla resurser utom PDF-dokument.
Inaktivera/aktivera en mediehanterare disabling-enabling-a-media-handler
Mediehanterarna kan inaktiveras eller aktiveras via webbhanteringskonsolen för Apache Felix. När mediehanteraren är inaktiverad utförs inte dess uppgifter på resurserna.
Så här aktiverar/inaktiverar du en mediehanterare:
- I webbläsaren går du till
https://<host>:<port>/system/console/components
. - Klicka Disable bredvid namnet på mediehanteraren. Till exempel:
com.day.cq.dam.handler.standard.mp3.Mp3Handler
. - Uppdatera sidan: en ikon visas bredvid mediehanteraren som anger att den är inaktiverad.
- Om du vill aktivera mediehanteraren klickar du på Enable bredvid namnet på mediehanteraren.
Skapa en mediehanterare creating-a-new-media-handler
Om du vill ha stöd för en ny medietyp eller utföra specifika åtgärder på en resurs måste du skapa en mediehanterare. I det här avsnittet beskrivs hur du fortsätter.
Viktiga klasser och gränssnitt important-classes-and-interfaces
Det bästa sättet att starta en implementering är att ärva från en tillhandahållen abstrakt implementering som tar hand om de flesta saker och tillhandahåller ett rimligt standardbeteende: den com.day.cq.dam.core.AbstractAssetHandler
klassen.
Den här klassen tillhandahåller redan en abstrakt tjänstbeskrivning. Om du ärver från den här klassen och använder maven-sling-plugin-programmet måste du ange att ärvningsflaggan ska vara true
.
Implementera följande metoder:
extractMetadata()
: extraherar alla tillgängliga metadata.getThumbnailImage()
: skapar en miniatyrbild av den överförda resursen.getMimeTypes()
: returnerar resursens MIME-typer.
Här är en exempelmall:
package my.own.stuff; /** * @scr.component inherit="true" * @scr.service */ public class MyMediaHandler extends com.day.cq.dam.core.AbstractAssetHandler { // implement the relevant parts }
Gränssnittet och klasserna omfattar:
-
com.day.cq.dam.api.handler.AssetHandler
gränssnitt: Det här gränssnittet beskriver tjänsten som lägger till stöd för specifika MIME-typer. Om du lägger till en MIME-typ måste det här gränssnittet implementeras. Gränssnittet innehåller metoder för import och export av specifika dokument, för att skapa miniatyrbilder och extrahera metadata. -
com.day.cq.dam.core.AbstractAssetHandler
klass: Den här klassen fungerar som bas för alla andra tillgångshanterarimplementeringar och tillhandahåller vanliga funktioner. -
Klassen
com.day.cq.dam.core.AbstractSubAssetHandler
:- Den här klassen fungerar som bas för alla andra implementeringar av resurshanterare och tillhandahåller vanliga funktioner för extrahering av delresurser.
- Det bästa sättet att starta en implementering är att ärva från en tillhandahållen abstrakt implementering som tar hand om de flesta saker och tillhandahåller ett rimligt standardbeteende: klassen com.day.cq.dam.core.AbstractAssetHandler.
- Den här klassen tillhandahåller redan en abstrakt tjänstbeskrivning. Om du ärver från den här klassen och använder maven-sling-plugin-programmet måste du ange att ärvningsflaggan ska vara true.
Följande metoder måste implementeras:
extractMetadata()
: den här metoden extraherar alla tillgängliga metadata.getThumbnailImage()
: den här metoden skapar en miniatyrbild av den skickade resursen.getMimeTypes()
: den här metoden returnerar resursens MIME-typer.
Här är en exempelmall:
package my.own.stuff; /** * @scr.component inherit="true" * @scr.service */ den offentliga klassen MyMediaHandler utökar com.day.cq.dam.core.AbstractAssetHandler
Gränssnittet och klasserna omfattar:
com.day.cq.dam.api.handler.AssetHandler
gränssnitt: Det här gränssnittet beskriver tjänsten som lägger till stöd för specifika MIME-typer. Om du lägger till en MIME-typ måste det här gränssnittet implementeras. Gränssnittet innehåller metoder för import och export av specifika dokument, för att skapa miniatyrbilder och extrahera metadata.com.day.cq.dam.core.AbstractAssetHandler
klass: Den här klassen fungerar som bas för alla andra tillgångshanterarimplementeringar och tillhandahåller vanliga funktioner.com.day.cq.dam.core.AbstractSubAssetHandler
klass: Den här klassen fungerar som bas för alla andra implementeringar av tillgångshanterare och tillhandahåller vanliga funktioner plus vanliga funktioner för subresursextrahering.
Exempel: skapa en specifik texthanterare example-create-a-specific-text-handler
I det här avsnittet ska du skapa en specifik texthanterare som genererar miniatyrbilder med en vattenstämpel.
Gör så här:
Se Utvecklingsverktyg för att installera och konfigurera Eclipse med en Maven-plugin och för att ställa in beroenden som behövs för Maven-projektet.
När du har utfört följande procedur och överför en textfil till Experience Manager extraheras filens metadata och två miniatyrbilder med vattenstämpel genereras.
-
Skapa i Eclipse
myBundle
Maven project:-
Klicka på File > New > Other.
-
Expandera mappen Maven i dialogrutan, välj Projekt av typen Maven och klicka sedan på Next.
-
Kontrollera Create a simple project och Use default Workspace locations och klicka sedan på Next.
-
Definiera projektet Maven med följande värden:
- Grupp-ID: com.day.cq5.myhandler
- Artefakt-ID: myBundle
- Namn: Mitt Experience Manager-paket
- Beskrivning: Det här är mitt Experience Manager-paket
-
Klicka på Finish.
-
-
Ställ in Java™ Compiler på version 1.5:
-
Högerklicka på
myBundle
väljer du Egenskaper. -
Välj Java™ Compiler och ange följande egenskaper till 1.5:
- Kompilatorefterlevnadsnivå
- Kompatibilitet med genererade .class-filer
- Källkompatibilitet
-
Klicka på OK. Klicka på Ja i dialogrutan.
-
-
Ersätt koden i filen pom.xml med följande kod:
code language-xml <project xmlns="https://maven.apache.org/POM/4.0.0" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 https://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <!-- ====================================================================== --> <!-- P A R E N T P R O J E C T D E S C R I P T I O N --> <!-- ====================================================================== --> <parent> <groupId>com.day.cq.dam</groupId> <artifactId>dam</artifactId> <version>5.2.14</version> <relativePath>../parent</relativePath> </parent> <!-- ====================================================================== --> <!-- P R O J E C T D E S C R I P T I O N --> <!-- ====================================================================== --> <groupId>com.day.cq5.myhandler</groupId> <artifactId>myBundle</artifactId> <name>My CQ5 bundle</name> <version>0.0.1-SNAPSHOT</version> <description>This is my CQ5 bundle</description> <packaging>bundle</packaging> <!-- ====================================================================== --> <!-- B U I L D D E F I N I T I O N --> <!-- ====================================================================== --> <build> <plugins> <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-scr-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.sling</groupId> <artifactId>maven-sling-plugin</artifactId> <configuration> <slingUrlSuffix>/libs/dam/install/</slingUrlSuffix> </configuration> </plugin> <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <extensions>true</extensions> <configuration> <instructions> <Bundle-Category>cq5</Bundle-Category> <Export-Package> com.day.cq5.myhandler </Export-Package> </instructions> </configuration> </plugin> </plugins> </build> <!-- ====================================================================== --> <!-- D E P E N D E N C I E S --> <!-- ====================================================================== --> <dependencies> <dependency> <groupId>com.day.cq.dam</groupId> <artifactId>cq-dam-api</artifactId> <version>5.2.10</version> <scope>provided</scope> </dependency> <dependency> <groupId>com.day.cq.dam</groupId> <artifactId>cq-dam-core</artifactId> <version>5.2.10</version> <scope>provided</scope> </dependency> <dependency> <groupId>com.day.cq</groupId> <artifactId>cq-commons</artifactId> </dependency> <dependency> <groupId>javax.jcr</groupId> <artifactId>jcr</artifactId> </dependency> <dependency> <groupId>org.apache.felix</groupId> <artifactId>org.osgi.compendium</artifactId> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </dependency> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> </dependency> <dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifactId> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> </dependency> <dependency> <groupId>com.day.commons</groupId> <artifactId>day-commons-gfx</artifactId> </dependency> <dependency> <groupId>com.day.commons</groupId> <artifactId>day-commons-text</artifactId> </dependency> <dependency> <groupId>com.day.cq.workflow</groupId> <artifactId>cq-workflow-api</artifactId> </dependency> <dependency> <groupId>com.day.cq.wcm</groupId> <artifactId>cq-wcm-foundation</artifactId> <version>5.2.22</version> </dependency> </dependencies>
-
Skapa paketet
com.day.cq5.myhandler
som innehåller Java™-klasserna undermyBundle/src/main/java
:- Under myBundle högerklickar du
src/main/java
, väljer Ny och sedan Packa. - Ge den ett namn
com.day.cq5.myhandler
och klicka på Slutför.
- Under myBundle högerklickar du
-
Skapa klassen Java™
MyHandler
:- I Eclipse, under
myBundle/src/main/java
, högerklicka påcom.day.cq5.myhandler
väljer du New och sedan Class. - Ge Java™-klassen namnet MyHandler i dialogrutan och klicka på Slutför. Eclipse skapar och öppnar filen MyHandler.java.
- I
MyHandler.java
Ersätt den befintliga koden med följande och spara sedan ändringarna:
code language-java package com.day.cq5.myhandler; import java.awt.Color; import java.awt.Rectangle; import java.awt.image.BufferedImage; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import javax.jcr.Node; import javax.jcr.RepositoryException; import javax.jcr.Session; import org.apache.commons.io.IOUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.day.cq.dam.api.metadata.ExtractedMetadata; import com.day.cq.dam.core.AbstractAssetHandler; import com.day.image.Font; import com.day.image.Layer; import com.day.cq.wcm.foundation.ImageHelper; /** * The <code>MyHandler</code> can extract text files * @scr.component inherit="true" immediate="true" metatype="false" * @scr.service * **/ public class MyHandler extends AbstractAssetHandler { /** * Logger instance for this class. */ private static final Logger log = LoggerFactory.getLogger(MyHandler.class); /** * Music icon margin */ private static final int MARGIN = 10; /** * @see com.day.cq.dam.api.handler.AssetHandler#getMimeTypes() */ public String[] getMimeTypes() { return new String[] {"text/plain"}; } public ExtractedMetadata extractMetadata(Node asset) { ExtractedMetadata extractedMetadata = new ExtractedMetadata(); InputStream data = getInputStream(asset); try { // read text data InputStreamReader reader = new InputStreamReader(data); char[] buffer = new char[4096]; String text = ""; while (reader.read(buffer) != -1) { text += new String(buffer); } reader.close(); long wordCount = this.wordCount(text); extractedMetadata.setProperty("text", text); extractedMetadata.setMetaDataProperty("Word Count",wordCount); setMimetype(extractedMetadata, asset); } catch (Throwable t) { log.error("handling error: " + t.toString(), t); } finally { IOUtils.closeQuietly(data); } return extractedMetadata; } // ----------------------< helpers >---------------------------------------- protected BufferedImage getThumbnailImage(Node node) { ExtractedMetadata metadata = extractMetadata(node); final String text = (String) metadata.getProperty("text"); // create text layer final Layer layer = new Layer(500, 600, Color.WHITE); layer.setPaint(Color.black); Font font = new Font("Arial", 12); String displayText = this.getDisplayText(text, 600, 12); if(displayText!=null && displayText.length() > 0) { // commons-gfx Font class would throw IllegalArgumentException on empty or null text layer.drawText(10, 10, 500, 600, displayText, font, Font.ALIGN_LEFT, 0, 0); } // create watermark and merge with text layer Layer watermarkLayer; try { final Session session = node.getSession(); watermarkLayer = ImageHelper.createLayer(session, "/content/dam/geometrixx/icons/certificate.png"); watermarkLayer.setX(MARGIN); watermarkLayer.setY(MARGIN); layer.merge(watermarkLayer); } catch (RepositoryException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } layer.crop(new Rectangle(510, 600)); return layer.getImage(); } // ---------------< private >----------------------------------------------- /** * This method cuts lines if the text file is too long.. * * @param text * * text to check * * @param height * * text box height (px) * * @param fontheight * * font height (px) * * @return the text which will fit into the box */ private String getDisplayText(String text, int height, int fontheight) { String trimmedText = text.trim(); int numOfLines = height / fontheight; String lines[] = trimmedText.split("\n"); if (lines.length <= numOfLines) { return trimmedText; } else { String cuttetText = ""; for (int i = 0; i < numOfLines; i++) { cuttetText += lines[i] + "\n"; } return cuttetText; } } /** * * This method counts the number of words in a string * * @param text the String whose words would like to be counted * * @return the number of words in the string * */ private long wordCount(String text) { // We need to keep track of the last character, if we have two whitespace in a row we don't want to double count. // The starting of the document is always a whitespace. boolean prevWhiteSpace = true; boolean currentWhiteSpace = true; char c; long numwords = 0; int j = text.length(); int i = 0; while (i < j) { c = text.charAt(i++); if (c == 0) { break; } currentWhiteSpace = Character.isWhitespace(c); if (currentWhiteSpace && !prevWhiteSpace) { numwords++; } prevWhiteSpace = currentWhiteSpace; } // If we do not end with a whitespace then we need to add one extra word. if (!currentWhiteSpace) { numwords++; } return numwords; } }
- I Eclipse, under
-
Kompilera Java™-klassen och skapa paketet:
- Högerklicka på projektet myBundle och välj Run As sedan Maven Install.
- Paketet
myBundle-0.0.1-SNAPSHOT.jar
(som innehåller den kompilerade klassen) skapas undermyBundle/target
.
-
Skapa en nod under i CRX Explorer
/apps/myApp
. Namn =install
, typ =nt:folder
. -
Kopiera paketet
myBundle-0.0.1-SNAPSHOT.jar
och lagra den under/apps/myApp/install
(till exempel med WebDAV). Den nya texthanteraren är nu aktiv i Experience Manager. -
Öppna Apache Felix Web Management Console i webbläsaren. Välj fliken Komponenter och inaktivera standardtexthanteraren
com.day.cq.dam.core.impl.handler.TextHandler
.
Kommandoradsbaserad mediehanterare command-line-based-media-handler
Med Experience Manager kan du köra valfritt kommandoradsverktyg i ett arbetsflöde för att konvertera resurser (till exempel ImageMagick) och lägga till den nya återgivningen i resursen. Installera kommandoradsverktyget på den disk där Experience Manager-servern finns och lägg till och konfigurera ett processsteg i arbetsflödet. Den anropade processen, anropad CommandLineProcess
, filtrerar enligt specifika MIME-typer och skapar flera miniatyrbilder baserat på den nya återgivningen.
Följande konverteringar kan automatiskt köras och lagras i Experience Manager Assets:
- EPS och AI-omvandling med ImageMagick och Ghostscript
- FLV-videotranskodning med FFmpeg
- MP3-kodning med LAME
- Ljudbearbetning med SOX
The CommandLineProcess
processen utför följande åtgärder i den ordning de anges:
- Filtrerar filen enligt specifika MIME-typer, om det anges.
- Skapar en tillfällig katalog på den disk som är värd för Experience Manager-servern.
- Direktuppspelar originalfilen till den tillfälliga katalogen.
- Kör det kommando som definieras av argumenten i steget. Kommandot körs i den tillfälliga katalogen med behörigheten för den användare som kör Experience Manager.
- Flyttar tillbaka resultatet till återgivningsmappen på Experience Manager-servern.
- Tar bort den tillfälliga katalogen.
- Skapar miniatyrbilder baserade på dessa återgivningar, om de anges. Miniatyrbildernas antal och mått definieras av stegets argument.
Ett exempel med ImageMagick an-example-using-imagemagick
I följande exempel visas hur du ställer in kommandoradens processsteg. Varje gång en resurs med MIME-typen gif eller tiff läggs till /content/dam
på Experience Manager-servern skapas en bild som är vänd mot originalet tillsammans med tre miniatyrbilder (140x100, 48x48 och 10x250).
Använd ImageMagick om du vill utföra det här steget. Installera ImageMagick på disken som är värd för Experience Manager-servern:
-
Installera ImageMagick. Se ImageMagick-dokumentation för mer information.
-
Konfigurera verktyget så att du kan köra det
convert
på kommandoraden. -
Om du vill se om verktyget är korrekt installerat kör du följande kommando
convert -h
på kommandoraden.En hjälpskärm med alla möjliga alternativ för konverteringsverktyget visas.
note note NOTE I vissa versioner av Windows® (till exempel Windows® SE) körs inte kommandot convert eftersom det står i konflikt med det inbyggda konverteringsverktyget som ingår i Windows®-installationen. I det här fallet anger du den fullständiga sökvägen för verktyget ImageMagick som används för att konvertera bildfiler till miniatyrer. Till exempel, "C:\Program Files\ImageMagick-6.8.9-Q16\convert.exe" -define jpeg:size=319x319 ${filename} -thumbnail 319x319 cq5dam.thumbnail.319.319.png
. -
Om du vill se om verktyget fungerar som det ska lägger du till en JPG-bild i arbetskatalogen och kör kommandot
convert <image-name>.jpg -flip <image-name>-flipped.jpg
på kommandoraden.En speglad bild läggs till i katalogen.
Lägg sedan till kommandoradsprocessteget i arbetsflödet DAM Update Asset:
-
Gå till Workflow konsol.
-
I Models -fliken, redigera DAM Update Asset modell.
-
Ändra inställningarna för Web enabled rendition steg enligt följande:
mime:image/gif,mime:image/tiff,tn:140:100,tn:48:48,tn:10:250,cmd:convert ${directory}/${filename} -flip ${directory}/${basename}.flipped.jpg
-
Spara arbetsflödet.
Om du vill testa det ändrade arbetsflödet lägger du till en resurs i /content/dam
.
- Hämta en valfri TIFF-bild i filsystemet. Byt namn på den till
myImage.tiff
och kopiera till/content/dam
, till exempel genom att använda WebDAV. - Gå till CQ5 DAM konsol, till exempel
http://localhost:4502/libs/wcm/core/content/damadmin.html
. - Öppna resursen
myImage.tiff
och kontrollera att den vända bilden och de tre miniatyrbilderna har skapats.
Konfigurera processteget CommandLineProcess configuring-the-commandlineprocess-process-step
I det här avsnittet beskrivs hur du ställer in Process Arguments i CommandLineProcess
. Separera värdena för Process Arguments med kommatecken och inte ett värde med blanksteg.
Flera MIME-typer kan definieras.
Flera miniatyrbilder kan definieras.
Följande variabler kan användas för att skapa kommandot:
${filename}
: indatafilens namn, till exempel original.jpg${file}
: den fullständiga sökvägen till indatafilen, till exempel /tmp/cqdam0816.tmp/original.jpg${directory}
: indatafilens katalog, till exempel /tmp/cqdam0816.tmp${basename}
: namnet på indatafilen utan filtillägg, till exempel originalfilen${extension}
: tillägg för indatafilen, till exempel jpgOm till exempel ImageMagick är installerat på den disk som är värd för Experience Manager-servern och om du skapar ett processsteg med CommandLineProcess som implementering och följande värden som Processargument:
mime:image/gif,mime:image/tiff,tn:140:100,tn:48:48,tn:10:250,cmd:convert ${directory}/${filename} -flip ${directory}/${basename}.flipped.jpg
När arbetsflödet körs gäller steget endast resurser som har image/gif
eller mime:image/tiff
som mime-types. Den skapar en vänd bild av originalet, konverterar den till .jpg och skapar tre miniatyrbilder med måtten: 140x100, 48x48 och 10x250.
Använd följande Process Arguments för att skapa de tre standardminiatyrbilderna med ImageMagick:
mime:image/tiff,mime:image/png,mime:image/bmp,mime:image/gif,mime:image/jpeg,cmd:convert ${filename} -define jpeg:size=319x319 -thumbnail "319x319>" -background transparent -gravity center -extent 319x319 -write png:cq5dam.thumbnail.319.319.png -thumbnail "140x100>" -background transparent -gravity center -extent 140x100 -write cq5dam.thumbnail.140.100.png -thumbnail "48x48>" -background transparent -gravity center -extent 48x48 cq5dam.thumbnail.48.48.png
Använd följande Process Arguments för att skapa den webbaktiverade återgivningen med ImageMagick:
mime:image/tiff,mime:image/png,mime:image/bmp,mime:image/gif,mime:image/jpeg,cmd:convert ${filename} -define jpeg:size=1280x1280 -thumbnail "1280x1280>" cq5dam.web.1280.1280.jpeg
CommandLineProcess
gäller endast för resurser (noder av typen dam:Asset
) eller underordnade till en resurs.