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 come 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. La Assets interfaccia utente, 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
Funzione supportata
× Non supportato. Non usare.
- Non disponibile
Caso d’uso aem-upload Experience Manager / Sling / JCR API Java Asset compute Assets API HTTP Sling GET / POST servlet GraphQL
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. Inviare una richiesta HTTP. Informa Experience Manageo 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. Inviare 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 del Experience Manager JVM

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

  • I binari non passano attraverso Experience Manager, che ora sta semplicemente coordinando il processo di caricamento con l’archivio cloud binario configurato 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 in open-source libreria aem-upload.

Avvia caricamento

Invia una richiesta HTTP POST alla cartella desiderata. Le risorse vengono create o aggiornate in questa cartella. Includere 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 application/x-www-form-urlencoded dati del modulo, contenenti i campi seguenti:

  • (string) fileName: Obbligatorio. Nome della risorsa così come viene visualizzata 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 201 codice di stato e un corpo contenente dati JSON nel seguente formato:

{
    "completeURI": "(string)",
    "folderPath": "(string)",
    "files": [
        {
            "fileName": "(string)",
            "mimeType": "(string)",
            "uploadToken": "(string)",
            "uploadURIs": [
                "(string)"
            ],
            "minPartSize": (number),
            "maxPartSize": (number)
        }
    ]
}
  • 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. Cioè, il valore può essere "https://[aem_server]:[port]/content/dam.completeUpload.json" o "/content/dam.completeUpload.json" Vedi caricamento 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 (vedi Carica binario).
  • minPartSize (numero): Lunghezza minima, in byte, dei dati che possono essere forniti a uno qualsiasi dei uploadURIs, se è presente più di un URI.
  • maxPartSize (numero): La lunghezza massima, in byte, dei dati che possono essere forniti a uno qualsiasi dei uploadURIs, se è presente 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 può dividere il binario in parti ed effettuare richieste PUT di ciascuna parte agli URI di caricamento forniti, in ordine. Se scegli di dividere il binario in parti, attieniti alle seguenti linee guida:

  • Ciascuna parte, ad eccezione dell'ultima, deve essere di dimensioni maggiori o uguali a minPartSize.
  • Ogni parte deve avere dimensioni inferiori o uguali a maxPartSize.
  • Se la dimensione del binario supera maxPartSize, dividi il binario in parti per caricarlo.
  • Non è necessario utilizzare tutti gli URI.

Se la dimensione del binario è minore o uguale a maxPartSize, puoi invece caricare l’intero binario in un singolo URI di caricamento. Se viene fornito più di un URI di caricamento, utilizza il primo e ignora il resto. Non è necessario utilizzare tutti gli URI.

I nodi edge CDN consentono di accelerare il caricamento richiesto dei binari.

Il modo più semplice per farlo è utilizzare il valore di maxPartSize come parte. Il contratto API garantisce che vi siano sufficienti URI di caricamento per caricare il binario se utilizzi questo valore come dimensione della parte. A questo scopo, dividi il binario in parti di dimensioni maxPartSize, utilizzando un URI per ogni parte, in ordine. La parte finale può essere di qualsiasi dimensione inferiore o uguale a maxPartSize. Ad esempio, si supponga che la dimensione totale del binario sia di 20.000 byte, minPartSize è di 5.000 byte, maxPartSize è di 8.000 byte e il numero di URI di caricamento è 5. Esegui i seguenti passaggi:

  • Carica i primi 8.000 byte del binario utilizzando il primo URI di caricamento.
  • Carica i secondi 8.000 byte del binario utilizzando il secondo URI di caricamento.
  • Carica gli ultimi 4.000 byte del binario utilizzando il terzo URI di caricamento. Poiché questa è la parte finale, non deve essere più grande di minPartSize.
  • Non è necessario utilizzare gli ultimi due URI di caricamento. Puoi ignorarle.

Un errore comune consiste nel calcolare la dimensione della parte in base al numero di URI di caricamento forniti dall’API. Il contratto API non garantisce il funzionamento di questo approccio e può effettivamente comportare dimensioni di parte che non rientrano nell’intervallo tra minPartSize e maxPartSize. Questo può causare errori di caricamento binario.

Ancora una volta, il modo più semplice e sicuro è quello di utilizzare semplicemente parti di dimensioni uguali a maxPartSize.

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

NOTA

Per ulteriori informazioni sull’algoritmo di caricamento, consulta la sezione documentazione ufficiale sulle funzioni e Documentazione API nel progetto Apache Jackrabbit Oak.

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, contenenti i campi seguenti.

Campi 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 True e esiste una risorsa con il nome specificato, quindi 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 True e esiste una risorsa con il nome specificato, Experience Manager elimina la risorsa e la ricrea.
uploadDuration Numero Facoltativo La quantità totale di tempo, in millisecondi, per il caricamento completo del file. Se specificato, la durata del caricamento è inclusa nei file di registro del sistema per l'analisi della velocità di trasferimento.
fileSize Numero Facoltativo Dimensione, in byte, del file. Se specificato, la dimensione del file viene inclusa nei file di registro del sistema per l'analisi della velocità di trasferimento.
NOTA

Se la risorsa esiste e nessuna delle due createVersionreplace viene specificato, quindi 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 200 codice di stato.

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:

NOTA

La libreria aem-upload e lo strumento della riga di comando utilizzano entrambi libreria node-httptransfer

API di caricamento risorse obsolete

Il nuovo metodo di caricamento è supportato solo per Adobe Experience Manager come Cloud Service. API da Adobe Experience Manager 6.5 è obsoleto. 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 su Profili di elaborazione configurazione che utilizza 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 in Risorsa di aggiornamento DAM il flusso di lavoro della versione precedente non è supportato. Per ulteriori informazioni sulle classi supportate, consulta la sezione Riferimento API Java per 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