Adobe Experience Manager Assets casi d’uso, API e materiale di riferimento per sviluppatori

L’articolo contiene raccomandazioni, materiali di riferimento e risorse per gli sviluppatori di Assets come Cloud Service. Include un nuovo modulo di caricamento delle risorse, riferimenti API e informazioni sul supporto fornito nei flussi di lavoro di post-elaborazione.

Experience Manager Assets API e operazioni

Assets as a Cloud Service fornisce diverse API per interagire in modo programmatico con le risorse digitali. Ciascuna API supporta casi d’uso specifici, come indicato nella tabella seguente. L’ Assets interfaccia utente, l’ Experience Manager app desktop e Adobe Asset Link supportano tutte o parte delle operazioni.

ATTENZIONE

Alcune API continuano a esistere ma non sono supportate attivamente (contrassegnate da un ×). Per quanto possibile, non utilizzare queste API.

Livello di supporto Descrizione
. Supportata
× Non supportato. Non usare.
- Non disponibile
Caso d’uso aem-upload API Experience Manager / Sling / JCRJava Asset compute Assets API HTTP Servlet Sling GET / POST GraphQL (anteprima)
binario originale
Crea originale . × - × × -
Leggi originale - × . . . -
Aggiorna originale . × . × × -
Elimina originale - . - . . -
Copia originale - . - . . -
Sposta originale - . - . . -
Metadati
Creare metadati - . . . . -
Leggi metadati - . - . . -
Aggiornare i metadati - . . . . -
Eliminare i metadati - . . . . -
Copia metadati - . - . . -
Spostare i metadati - . - . . -
Frammenti di contenuto (CF)
Crea CF - . - . - -
Leggi CF - . - . - .
Aggiorna CF - . - . - -
Elimina CF - . - . - -
Copia CF - . - . - -
Sposta CF - . - . - -
Versioni
Crea versione . . - - - -
Versione lettura - . - - - -
Elimina versione - . - - - -
Cartelle
Crea cartella . . - . - -
Leggi cartella - . - . - -
Elimina cartella . . - . - -
Copia cartella . . - . - -
Sposta cartella . . - . - -

Caricamento risorsa

In Experience Manager come Cloud Service, puoi caricare direttamente le risorse nell’archiviazione cloud utilizzando l’API HTTP. I passaggi per caricare un file binario sono i seguenti. Esegui questi passaggi in un'applicazione esterna e non all'interno della Experience Manager JVM.

  1. Invia una richiesta HTTP. Indica a Experience Manager la distribuzione dell'intento di caricare un nuovo binario.
  2. PUT il contenuto del binario a uno o più URI forniti dalla richiesta di avvio.
  3. Invia una richiesta HTTP per informare il server che il contenuto del binario è stato caricato correttamente.

Panoramica del protocollo di caricamento binario diretto

IMPORTANTE

Esegui i passaggi precedenti in un'applicazione esterna e non all'interno della JVM Experience Manager.

L’approccio fornisce una gestione scalabile e più performante del caricamento delle risorse. Le differenze rispetto a Experience Manager 6.5 sono le seguenti:

  • I binari non passano attraverso Experience Manager, che ora sta semplicemente coordinando il processo di caricamento con l'archiviazione cloud binaria configurata per la distribuzione.
  • L’archiviazione cloud binaria funziona con una rete CDN (Content Delivery Network) o Edge. Una rete CDN seleziona un endpoint di caricamento più vicino per un client. Quando i dati si spostano a una distanza più breve da un endpoint vicino, le prestazioni di caricamento e l’esperienza utente migliorano, soprattutto per i team distribuiti geograficamente.
NOTA

Vedi il codice client per implementare questo approccio nella libreria open-source aem-upload.

Avvia caricamento

Invia una richiesta HTTP POST alla cartella desiderata. Le risorse vengono create o aggiornate in questa cartella. Includi il selettore .initiateUpload.json per indicare che la richiesta è quella di avviare il caricamento di un file binario. Ad esempio, il percorso della cartella in cui deve essere creata la risorsa è /assets/folder. La richiesta POST è POST https://[aem_server]:[port]/content/dam/assets/folder.initiateUpload.json.

Il tipo di contenuto del corpo della richiesta deve essere costituito da dati del modulo application/x-www-form-urlencoded contenenti i campi seguenti:

  • (string) fileName: Obbligatorio. Il nome della risorsa così come viene visualizzato in Experience Manager.
  • (number) fileSize: Obbligatorio. La dimensione del file, in byte, della risorsa da caricare.

È possibile utilizzare una singola richiesta per avviare i caricamenti per più binari, purché ogni binario contenga i campi richiesti. In caso di esito positivo, la richiesta risponde con un codice di stato 201 e un corpo contenente dati JSON nel seguente formato:

{
    "completeURI": "(string)",
    "folderPath": (string)",
    "files": [
        {
            "fileName": "(string)",
            "mimeType": "(string)",
            "uploadToken": "(string)",
            "uploadURIs": [
                "(string)"
            ]
        }
    ]
}
  • completeURI (stringa): Chiama questo URI al termine del caricamento del binario. L’URI può essere un URI assoluto o relativo e i client devono essere in grado di gestirlo. In altre parole, il valore può essere "https://[aem_server]:[port]/content/dam.completeUpload.json" o "/content/dam.completeUpload.json" Consulta upload completo.
  • folderPath (stringa): Percorso completo della cartella in cui viene caricato il binario.
  • (files) (matrice): Elenco di elementi la cui lunghezza e ordine corrispondono alla lunghezza e all’ordine dell’elenco delle informazioni binarie fornite nella richiesta di avvio.
  • fileName (stringa): Il nome del binario corrispondente, come specificato nella richiesta di avvio. Questo valore deve essere incluso nella richiesta completa.
  • mimeType (stringa): Il tipo mime del binario corrispondente, come specificato nella richiesta di avvio. Questo valore deve essere incluso nella richiesta completa.
  • uploadToken (stringa): Un token di caricamento per il binario corrispondente. Questo valore deve essere incluso nella richiesta completa.
  • uploadURIs (matrice): Elenco di stringhe i cui valori sono URI completi a cui deve essere caricato il contenuto del binario (consulta Carica binario).
  • minPartSize (numero): La lunghezza minima, in byte, dei dati che possono essere forniti a uno qualsiasi degli URI uploadURIs, se sono presenti più di un URI.
  • maxPartSize (numero): La lunghezza massima, in byte, dei dati che possono essere forniti a uno qualsiasi degli URI uploadURIs, se sono presenti più di un URI.

Carica binario

L'output di avvio di un caricamento include uno o più valori URI di caricamento. Se viene fornito più di un URI, il client divide il binario in parti ed effettua le richieste PUT di ciascuna parte in ogni URI, in ordine. Usa tutti gli URI. Assicurati che le dimensioni di ogni parte siano entro le dimensioni minime e massime specificate nella risposta di avvio. I nodi edge CDN consentono di accelerare il caricamento richiesto dei binari.

Un metodo potenziale per farlo è calcolare la dimensione della parte in base al numero di URI di caricamento forniti dall’API. Ad esempio, si supponga che la dimensione totale del binario sia di 20.000 byte e che il numero di URI di caricamento sia di 2. Quindi segui questi passaggi:

  • Calcola la dimensione della parte dividendo la dimensione totale per il numero di URI: 20.000 / 2 = 10.000.
  • Intervallo di byte di POST 0-9.999 del binario al primo URI nell’elenco degli URI di caricamento.
  • Intervallo di byte di POST 10.000 - 19.999 del binario al secondo URI nell’elenco degli URI di caricamento.

Se il caricamento ha esito positivo, il server risponde a ogni richiesta con un codice di stato 201.

Caricamento completo

Dopo aver caricato tutte le parti di un file binario, invia una richiesta HTTP POST all’URI completo fornito dai dati di avvio. Il tipo di contenuto del corpo della richiesta deve essere application/x-www-form-urlencoded dati del modulo, contenente i campi seguenti.

espandibili Tipo Obbligatorio o no Descrizione
fileName Stringa Obbligatorio Nome dell’attività, come indicato dai dati di apertura.
mimeType Stringa Obbligatorio Il tipo di contenuto HTTP del binario, come fornito dai dati di avvio.
uploadToken Stringa Obbligatorio Carica il token per il binario, come fornito dai dati di avvio.
createVersion Booleano Facoltativo Se esiste True e una risorsa con il nome specificato, Experience Manager crea una nuova versione della risorsa.
versionLabel Stringa Facoltativo Se viene creata una nuova versione, l’etichetta associata alla nuova versione di una risorsa .
versionComment Stringa Facoltativo Se viene creata una nuova versione, i commenti associati alla versione.
replace Booleano Facoltativo Se esiste True e una risorsa con il nome specificato, Experience Manager elimina la risorsa, quindi la ricrea.
NOTA

Se la risorsa esiste e non è specificato né createVersionreplace, Experience Manager aggiorna la versione corrente della risorsa con il nuovo binario.

Come il processo di avvio, i dati completi della richiesta possono contenere informazioni per più di un file.

Il processo di caricamento di un binario non viene eseguito finché non viene richiamato l’URL completo per il file. Una risorsa viene elaborata al termine del processo di caricamento. L’elaborazione non si avvia anche se il file binario della risorsa viene caricato completamente ma il processo di caricamento non è completato. Se il caricamento ha esito positivo, il server risponde con un codice di stato 200.

Libreria di caricamento open-source

Per ulteriori informazioni sugli algoritmi di caricamento o per creare script e strumenti di caricamento personalizzati, Adobe fornisce librerie e strumenti open source:

API di caricamento risorse obsolete

Il nuovo metodo di caricamento è supportato solo per Adobe Experience Manager come Cloud Service. Le API di Adobe Experience Manager 6.5 sono obsolete. I metodi relativi al caricamento o all’aggiornamento di risorse o rappresentazioni (qualsiasi caricamento binario) sono obsoleti nelle seguenti API:

Flussi di lavoro di elaborazione e post-elaborazione delle risorse

In Experience Manager, l’elaborazione delle risorse si basa sulla configurazione Profili di elaborazione che utilizza i microservizi per le risorse. L’elaborazione non richiede estensioni per sviluppatori.

Per la configurazione del flusso di lavoro di post-elaborazione, utilizza i flussi di lavoro standard con estensioni con passaggi personalizzati.

Supporto dei passaggi del flusso di lavoro nel flusso di lavoro di post-elaborazione

Se esegui l’aggiornamento da una versione precedente di Experience Manager, puoi utilizzare i microservizi per le risorse per elaborare le risorse. I microservizi per le risorse native per il cloud sono più semplici da configurare e utilizzare. Alcuni passaggi del flusso di lavoro utilizzati nel flusso di lavoro Aggiorna risorsa DAM nella versione precedente non sono supportati. Per ulteriori informazioni sulle classi supportate, consulta il riferimento Java API o Javadocs.

I seguenti modelli di flusso di lavoro tecnici vengono sostituiti dai microservizi per le risorse o il supporto non è disponibile:

  • 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

In questa pagina