Adobe Experience Manager Assets användningsfall för utvecklare, API:er och referensmaterial

Artikeln innehåller rekommendationer, referensmaterial och resurser för utvecklare av Assets som Cloud Service. Den innehåller en ny modul för överföring av resurser, API-referens och information om stödet som ges i arbetsflöden efter bearbetning.

Experience Manager Assets API:er och åtgärder

Assets som Cloud Service innehåller flera API:er för programmässig interaktion med digitala resurser. Varje API har stöd för särskilda användningsfall, vilket framgår av tabellen nedan. The Assets användargränssnitt, Experience Manager datorprogram och Adobe Asset Link har stöd för alla eller vissa av åtgärderna.

FÖRSIKTIGHET

Vissa API:er finns fortfarande men stöds inte aktivt (anges med en ×). Använd inte dessa API:er i största möjliga utsträckning.

Supportnivå Beskrivning
Stöds
x Stöds inte. Skall ej användas.
- Inte tillgängligt
Använd skiftläge aem-upload Experience Manager / Sling / JCR Java API:er Tjänsten asset compute Assets HTTP-API Sling GET / POST servlets GraphQL
Ursprunglig binär
Skapa original x - x x -
Läs original - x -
Uppdatera original x x x -
Ta bort original - - -
Kopiera original - - -
Flytta original - - -
Metadata
Skapa metadata - -
Läs metadata - - -
Uppdatera metadata - -
Ta bort metadata - -
Kopiera metadata - - -
Flytta metadata - - -
Innehållsfragment (CF)
Skapa CF - - - -
Läs CF - - -
Uppdatera CF - - - -
Ta bort CF - - - -
Kopiera CF - - - -
Flytta CF - - - -
Versioner
Skapa version - - - -
Läsversion - - - - -
Ta bort version - - - - -
Mappar
Skapa mapp - - -
Läs mapp - - - -
Ta bort mapp - - -
Kopiera mapp - - -
Flytta mapp - - -

Överföring av tillgångar

I Experience Manager som Cloud Servicekan du överföra resurserna direkt till molnlagringen med hjälp av HTTP API. Stegen för att överföra en binär fil visas nedan. Utför dessa steg i ett externt program och inte i Experience Manager JVM.

  1. Skicka en HTTP-begäran. Den informerar Experience Manager driftsättning av din avsikt att överföra en ny binär fil.
  2. PUT innehållet i binärfilen till en eller flera URI:er som tillhandahålls av initieringsbegäran.
  3. Skicka en HTTP-begäran för att informera servern om att innehållet i binärfilen har överförts.

Översikt över protokollet för direkt binär överföring

VIKTIGT

Utför ovanstående steg i ett externt program och inte i Experience Manager JVM.

Metoden ger en skalbar och mer effektiv hantering av överföringar av resurser. Skillnaderna jämfört med Experience Manager 6.5 är:

  • Binärfiler går inte igenom Experience Manager, som nu helt enkelt koordinerar överföringsprocessen med det binära molnlagringsutrymmet som är konfigurerat för distributionen.
  • Binär molnlagring fungerar med ett CDN-nätverk (Content Delivery Network) eller Edge-nätverk. Ett CDN väljer en slutpunkt för överföring som är närmare för en klient. När data flyttas kortare tid till en närliggande slutpunkt förbättras överföringsprestanda och användarupplevelsen, särskilt för geografiskt utspridda team.
OBSERVERA

Se klientkoden för att implementera den här metoden i öppen källkod aem-upload library.

VIKTIGT

Under vissa omständigheter är det inte säkert att ändringarna till fullo kan spridas mellan begäranden till Experience Manager på grund av att lagringsutrymmet i Cloud Service så småningom är konsekvent. Detta leder till 404 svar på initiering eller slutförande av överföringsanrop på grund av att de nödvändiga mappprojekten inte sprids. Kunderna bör förvänta sig 404 svar och hantera dem genom att implementera ett nytt försök med en strategi för backoff.

Initiera överföring

Skicka en begäran om HTTP-POST till den önskade mappen. Resurser skapas eller uppdateras i den här mappen. Inkludera väljaren .initiateUpload.json för att ange att begäran är att initiera överföring av en binär fil. Sökvägen till mappen där resursen ska skapas är /assets/folder. Begäran om POST är POST https://[aem_server]:[port]/content/dam/assets/folder.initiateUpload.json.

Innehållstypen för begärandetexten ska vara application/x-www-form-urlencoded formulärdata, som innehåller följande fält:

  • (string) fileName: Krävs. Namnet på resursen så som den visas i Experience Manager.
  • (number) fileSize: Krävs. Filstorleken, i byte, för resursen som överförs.

En enda begäran kan användas för att initiera överföringar för flera binärfiler, förutsatt att varje binärfil innehåller de obligatoriska fälten. Om det lyckas svarar begäran med en 201 statuskod och brödtext som innehåller JSON-data i följande format:

{
    "completeURI": "(string)",
    "folderPath": "(string)",
    "files": [
        {
            "fileName": "(string)",
            "mimeType": "(string)",
            "uploadToken": "(string)",
            "uploadURIs": [
                "(string)"
            ],
            "minPartSize": (number),
            "maxPartSize": (number)
        }
    ]
}
  • completeURI (sträng): Anropa den här URI:n när den binära filen har överförts. URI:n kan vara en absolut eller relativ URI och klienterna bör kunna hantera båda. Värdet kan alltså vara "https://[aem_server]:[port]/content/dam.completeUpload.json" eller "/content/dam.completeUpload.json" Se fullständig överföring.
  • folderPath (sträng): Fullständig sökväg till mappen som binärfilen överförs till.
  • (files) (array): En lista med element vars längd och ordning matchar längden och ordningen för listan med binär information som tillhandahålls i initieringsbegäran.
  • fileName (sträng): Namnet på motsvarande binärfil, som anges i initieringsbegäran. Detta värde bör inkluderas i den fullständiga begäran.
  • mimeType (sträng): Mime-typen för motsvarande binärfil, som anges i initieringsbegäran. Detta värde bör inkluderas i den fullständiga begäran.
  • uploadToken (sträng): En överföringstoken för motsvarande binär fil. Detta värde bör inkluderas i den fullständiga begäran.
  • uploadURIs (array): En lista över strängar vars värden är fullständiga URI:er som binärens innehåll ska överföras till (se Ladda upp binärt).
  • minPartSize (tal): Minsta tillåtna längd, i byte, för data som kan skickas till någon av uploadURIs, om det finns mer än en URI.
  • maxPartSize (tal): Den maximala längden, i byte, på data som kan skickas till någon av uploadURIs, om det finns mer än en URI.

Ladda upp binärt

Utdata från initiering av en överföring innehåller ett eller flera överförda URI-värden. Om mer än en URI anges kan klienten dela upp binärfilen i delar och göra PUT-förfrågningar för varje del till de angivna överförings-URI:erna, i ordning. Om du väljer att dela upp binärfilen i delar ska du följa följande riktlinjer:

  • Varje del, med undantag för den sista, måste ha en storlek som är större än eller lika med minPartSize.
  • Varje del måste ha en storlek som är mindre än eller lika med maxPartSize.
  • Om binärfilens storlek överskrider maxPartSize, delar upp binärfilen i delar för att ladda upp den.
  • Du behöver inte använda alla URI:er.

Om binärfilens storlek är mindre än eller lika med maxPartSizekan du istället överföra hela binärfilen till en enda överförings-URI. Om mer än en överförings-URI anges, ska du använda den första och ignorera resten. Du behöver inte använda alla URI:er.

CDN-kantnoder snabbar upp begärd överföring av binärfiler.

Det enklaste sättet att uppnå detta är att använda värdet för maxPartSize som delstorlek. API-kontraktet garanterar att det finns tillräckligt med överförda URI:er för att överföra din binära fil om du använder det här värdet som delstorlek. Det gör du genom att dela binärfilen i delar av storleken maxPartSize, med en URI för varje del, i ordning. Den sista delen kan ha en storlek som är mindre än eller lika med maxPartSize. Anta till exempel att binärfilens totala storlek är 20 000 byte, minPartSize är 5 000 byte, maxPartSize är 8 000 byte och antalet överförings-URI är 5. Utför följande steg:

  • Överför de första 8 000 byten i binärfilen med den första överförings-URI:n.
  • Överför de andra 8 000 byten i binärfilen med den andra överförings-URI:n.
  • Överför de sista 4 000 byten i binärfilen med den tredje överförings-URI:n. Eftersom det här är den sista delen behöver den inte vara större än minPartSize.
  • Du behöver inte använda de två sista överförings-URI:erna. Du kan ignorera dem.

Ett vanligt fel är att beräkna delstorleken baserat på antalet överförings-URI:er som tillhandahålls av API:t. API-avtalet garanterar inte att den här metoden fungerar och kan i själva verket resultera i delstorlekar som ligger utanför intervallet mellan minPartSize och maxPartSize. Detta kan leda till binära överföringsfel.

Det enklaste och säkraste sättet är att helt enkelt använda delar som är lika stora maxPartSize.

Om överföringen lyckas svarar servern på varje begäran med en 201 statuskod.

OBSERVERA

Mer information om överföringsalgoritmen finns i officiell funktionsdokumentation och API-dokumentation i projektet Apache Jackrabbit Oak.

fullständig överföring

När alla delar av en binär fil har överförts skickar du en begäran om HTTP-POST till den fullständiga URI som anges av initieringsdata. Innehållstypen för begärandetexten ska vara application/x-www-form-urlencoded formulärdata, som innehåller följande fält.

fält Typ Obligatoriskt eller inte Beskrivning
fileName Sträng Krävs Namnet på resursen, enligt initieringsdata.
mimeType Sträng Krävs HTTP-innehållstypen för binärfilen, som angavs i initieringsdata.
uploadToken Sträng Krävs Överför token för binärfilen enligt initieringsdata.
createVersion Boolesk Valfritt If True och det finns en resurs med det angivna namnet Experience Manager skapar en ny version av resursen.
versionLabel Sträng Valfritt Om en ny version skapas är den etikett som är associerad med den nya versionen av en resurs .
versionComment Sträng Valfritt Om en ny version skapas, de kommentarer som är kopplade till versionen.
replace Boolesk Valfritt If True och det finns en resurs med det angivna namnet, Experience Manager tar bort resursen och återskapar den.
uploadDuration Siffra Valfritt Den totala tiden, i millisekunder, för att filen ska kunna överföras i sin helhet. Om det anges inkluderas överföringens varaktighet i systemets loggfiler för analys av överföringshastigheten.
fileSize Siffra Valfritt Filens storlek i byte. Om det anges inkluderas filstorleken i systemets loggfiler för analys av överföringshastighet.
OBSERVERA

Om tillgången finns och ingendera createVersion eller replace anges, sedan Experience Manager uppdaterar resursens aktuella version med den nya binärfilen.

Precis som initieringsprocessen kan fullständiga data för begäran innehålla information för mer än en fil.

Överföringen av en binär fil utförs inte förrän den fullständiga URL:en anropas för filen. En resurs bearbetas när överföringen är klar. Bearbetningen startar inte även om resursens binära fil överförs helt, men överföringen inte slutförs. Om överföringen lyckas svarar servern med en 200 statuskod.

Överföringsbibliotek med öppen källkod

Om du vill veta mer om överföringsalgoritmerna eller skapa egna överföringsskript och verktyg kan du använda Adobe för att skapa bibliotek och verktyg med öppen källkod:

OBSERVERA

Både aem-upload-biblioteket och kommandoradsverktyget använder node-httptransfer library

Inaktuella API:er för överföring av resurser

Den nya överföringsmetoden stöds endast för Adobe Experience Manager som Cloud Service. API:erna från Adobe Experience Manager 6.5 är föråldrat. Metoderna för att överföra eller uppdatera resurser eller återgivningar (all binär överföring) är ersatta i följande API:er:

Resurshantering och efterbearbetning

I Experience Manager, är tillgångsbehandlingen baserad på Processing Profiles konfiguration som använder tillgångsmikrotjänster. Bearbetningen kräver inga utvecklartillägg.

Använd standardarbetsflödena med tillägg med anpassade steg för konfiguration av efterbearbetning av arbetsflöde.

Stöd för arbetsflödessteg i efterbearbetningsarbetsflödet

Om du uppgraderar från en tidigare version av Experience Managerkan du använda mikrotjänster för att bearbeta resurser. De molnbaserade mikrotjänsterna är enklare att konfigurera och använda. Ett fåtal arbetsflödessteg som används i DAM Update Asset arbetsflödet i den tidigare versionen stöds inte. Mer information om klasser som stöds finns i Java API-referens eller Javadocs.

Följande tekniska arbetsflödesmodeller ersätts av resursmikrotjänster eller så är support inte tillgänglig:

  • com.day.cq.dam.cameraraw.process.CameraRawHandlingProcess
  • com.day.cq.dam.core.process.CommandLineProcess
  • com.day.cq.dam.pdfrasterizer.process.PdfRasterizerHandlingProcess
  • com.day.cq.dam.core.process.AddPropertyWorkflowProcess
  • com.day.cq.dam.core.process.CreateSubAssetsProcess
  • com.day.cq.dam.core.process.DownloadAssetProcess
  • com.day.cq.dam.word.process.ExtractImagesProcess
  • com.day.cq.dam.word.process.ExtractPlainProcess
  • com.day.cq.dam.ids.impl.process.IDSJobProcess
  • com.day.cq.dam.indd.process.INDDMediaExtractProcess
  • com.day.cq.dam.indd.process.INDDPageExtractProcess
  • com.day.cq.dam.core.impl.lightbox.LightboxUpdateAssetProcess
  • com.day.cq.dam.pim.impl.sourcing.upload.process.ProductAssetsUploadProcess
  • com.day.cq.dam.core.process.SendDownloadAssetEmailProcess
  • com.day.cq.dam.similaritysearch.internal.workflow.smarttags.StartTrainingProcess
  • com.day.cq.dam.similaritysearch.internal.workflow.smarttags.TransferTrainingDataProcess
  • com.day.cq.dam.switchengine.process.SwitchEngineHandlingProcess
  • com.day.cq.dam.core.process.GateKeeperProcess
  • com.day.cq.dam.s7dam.common.process.DMEncodeVideoWorkflowCompletedProcess
  • com.day.cq.dam.core.process.DeleteImagePreviewProcess
  • com.day.cq.dam.video.FFMpegTranscodeProcess
  • com.day.cq.dam.core.process.ThumbnailProcess
  • com.day.cq.dam.video.FFMpegThumbnailProcess
  • com.day.cq.dam.core.process.CreateWebEnabledImageProcess
  • com.day.cq.dam.core.process.CreatePdfPreviewProcess
  • com.day.cq.dam.s7dam.common.process.VideoUserUploadedThumbnailProcess
  • com.day.cq.dam.s7dam.common.process.VideoThumbnailDownloadProcess
  • com.day.cq.dam.s7dam.common.process.VideoProxyServiceProcess
  • com.day.cq.dam.scene7.impl.process.Scene7UploadProcess
  • com.day.cq.dam.s7dam.common.process.S7VideoThumbnailProcess
  • com.day.cq.dam.core.process.MetadataProcessorProcess
  • com.day.cq.dam.core.process.AssetOffloadingProcess
  • com.adobe.cq.dam.dm.process.workflow.DMImageProcess

På denna sida