[AEM Assets]{class="badge positive" title="Gilt für AEM Assets)."}
Integration mit Dynamic Media integrate-dynamic-media
Content Advisor kann mit Dynamic Media integriert werden, damit Benutzer Dynamic Media-Ausgabedarstellungen zur Verwendung in ihren Programmen und Workflows durchsuchen, in der Vorschau anzeigen und auswählen können. Benutzer können aus verfügbaren Ausgabedarstellungen, Bildvorgaben und smarten Zuschnitten auswählen und unterstützte Dynamic Media-Modifikatoren anwenden, um die Bereitstellung von Assets anzupassen. In den folgenden Abschnitten wird beschrieben, wie Sie die ausgewählten Ausgabedarstellungsinformationen verarbeiten und URLs für die Bereitstellung von Dynamic Media für Ihre Anwendung generieren.
Erstellen von Dynamic Media-URLs mit selectedMedia build-dynamic-media-urls-selectedmedia
Wenn ein(e) Benutzende® eine Dynamic Media-Ausgabedarstellung im Dynamic Media-Bedienfeld Inhaltsratgeber auswählt, werden die ausgewählten Ausgabedarstellungsinformationen im selectedMedia -Objekt zurückgegeben. Die Hostanwendung muss diese Informationen verwenden, um die entsprechende Bereitstellungs-URL für Dynamic Media zu generieren.
selectedMedia-Objekt selectedmedia-object
Das selectedMedia-Objekt wird dem ausgewählten Asset hinzugefügt und enthält Informationen zur vom Benutzer ausgewählten Dynamic Media-Ausgabedarstellung.
'selectedMedia': Array<{
base?: string;
preset?: string;
smartcrop?: string;
modifiers?: Array<string>;
apiStyle?: 'scene7' | 'openapi'
}>;
Das selectedMedia-Objekt enthält die folgenden Eigenschaften:
basepresetsmartcropmodifiersapiStylescene7) oder OpenAPI (openapi) verwendet.Wenn ein(e) Benutzende® beispielsweise eine Basisausgabe auswählt und den rotate=90 anwendet, sieht das zurückgegebene -Objekt wie folgt aus:
selectedMedia: {
apiStyle: "scene7",
base: "scene7company/image",
modifiers: ["rotate=90"]
}
Zugriff auf selectedMedia im handleSelection-Rückruf access-selectedmedia
Sobald eine Ausgabedarstellung ausgewählt ist, wird das selectedMedia Objekt in der selectedAssets Payload verfügbar, die vom handleSelection-Callback zurückgegeben wird.
async function handleSelection(assets) {
const dmUrls = [];
assets.forEach((asset) => {
if(asset?.selectedMedia){
const dmUrl = createDMUrlFromSelectedMedia(
asset.selectedMedia,
asset
);
dmUrls.push({ asset, dmUrl });
}
});
}
Der Rückruf iteriert durch die ausgewählten Assets. Für jedes Asset, das ein selectedMedia enthält, generiert die Anwendung eine Dynamic Media-URL unter Verwendung der ausgewählten Ausgabedarstellungsinformationen.
Generieren einer Dynamic Media-URL generate-dynamic-media-url
Die folgende Funktion validiert die ausgewählten Ausgabedarstellungsinformationen und bestimmt, welcher Dynamic Media-Bereitstellungsstapel verwendet werden soll.
const DM_OPENAPI_API_STYLE = 'openapi';
const DM_SCENE7_API_STYLE = 'scene7';
const ASSET_REPO_NAME_KEY = 'repo:name';
const ASSET_REPO_ID_KEY = 'repo:id';
const REPO_ID_KEY = 'repo:repositoryId';
export const createDMUrlFromSelectedMedia = (
selectedMedia,
repoMetadata
) => {
if (!selectedMedia || !selectedMedia?.apiStyle) {
throw new Error(
'Selected media or api style is not valid'
);
}
if (
selectedMedia?.apiStyle === DM_OPENAPI_API_STYLE
) {
return buildDMOpenApiUrl(
selectedMedia,
repoMetadata
);
} else if (
selectedMedia?.apiStyle === DM_SCENE7_API_STYLE
) {
return buildDMScene7Url(
selectedMedia,
repoMetadata
);
}
};
Diese Funktion führt die folgenden Aktionen aus:
- Überprüft, ob die ausgewählte Ausgabedarstellung einen
apiStyleenthält. - Legt fest, ob die ausgewählte Ausgabedarstellung Dynamic Media mit OpenAPI-Funktionen oder Dynamic Media Scene7 verwendet.
- Ruft die entsprechende URL-Generierungsfunktion basierend auf dem ausgewählten Versandstapel auf.
Erstellen einer OpenAPI-URL für Dynamic Media build-openapi-url
Die folgende Funktion generiert eine Dynamic Media OpenAPI-URL unter Verwendung der ausgewählten Ausgabedarstellungsinformationen und Repository-Metadaten.
export const buildDMOpenApiUrl = (
selectedMedia,
repoMetadata
) => {
const { base, preset, smartcrop, modifiers }
= selectedMedia;
const dmDomain =
repoMetadata?.[REPO_ID_KEY]
.replace('author-', 'delivery-');
const assetName =
repoMetadata?.[ASSET_REPO_NAME_KEY];
const assetId =
repoMetadata?.[ASSET_REPO_ID_KEY];
const seoName =
assetName?.split('.')[0];
const assetFormat =
repoMetadata?.['dc:format'];
let dmUrl;
if (
assetFormat &&
assetFormat.startsWith('video/')
) {
dmUrl =
`https://${dmDomain}/adobe/assets/${assetId}/play`;
} else {
dmUrl =
`https://${dmDomain}/adobe/assets/${assetId}/as/${seoName}.avif`;
if (base) {
} else if (preset) {
dmUrl =
`${dmUrl}?preset=${preset}`;
} else if (smartcrop) {
dmUrl =
`${dmUrl}?smartcrop=${smartcrop}`;
}
}
if (modifiers && dmUrl) {
const modifierString =
getModifierString(selectedMedia);
if(base) {
dmUrl =
`${dmUrl}?${modifierString}`;
} else {
dmUrl =
`${dmUrl}&${modifierString}`;
}
}
return dmUrl;
};
Diese Funktion:
- Ruft die zum Erstellen der Versand-URL erforderlichen Repository-Informationen ab.
- Erstellt die OpenAPI-Basis-Bereitstellungs-URL.
- Hängt die ausgewählte Vorgabe oder das ausgewählte smarte Zuschneiden an die URL an, falls zutreffend.
- Fügt alle vom Benutzer ausgewählten Modifikatoren an.
- Gibt die endgültige OpenAPI-Bereitstellungs-URL zurück.
Für Video-Assets generiert die Funktion die Dynamic Media-Video-Player-URL.
Erstellen einer Dynamic Media Scene7-URL build-scene7-url
Die folgende Funktion generiert eine Dynamic Media Scene7-URL.
export const buildDMScene7Url = (
selectedMedia,
repoMetadata
) => {
const {
base,
preset,
smartcrop,
modifiers
} = selectedMedia;
let scene7Domain =
repoMetadata?.['repo:scene7Domain'];
const scene7File =
repoMetadata?.['repo:scene7File'];
if (!scene7Domain || !scene7File) {
return null;
}
scene7Domain =
scene7Domain.startsWith('http://')
? scene7Domain.replace(
'http://',
'https://'
)
: scene7Domain;
scene7Domain =
scene7Domain?.endsWith('/')
? scene7Domain
: `${scene7Domain}/`;
let dmUrl;
if (base) {
dmUrl =
`${scene7Domain}is/image/${base}`;
} else if (preset) {
dmUrl =
`${scene7Domain}is/image/${scene7File}?$${preset}$`;
} else if (smartcrop) {
dmUrl =
`${scene7Domain}is/image/${scene7File}:${smartcrop}`;
}
if (modifiers && dmUrl) {
const modifierString =
getModifierString(selectedMedia);
if (preset) {
dmUrl =
`${dmUrl}&${modifierString}`;
} else {
dmUrl =
`${dmUrl}?${modifierString}`;
}
}
return dmUrl;
};
Diese Funktion:
- Ruft die Scene7-Domain und Asset-Informationen aus den Repository-Metadaten ab.
- Erstellt eine URL für die ausgewählte Basis-Ausgabedarstellung, Bildvorgabe oder das smarte Zuschneiden.
- Fügt alle ausgewählten Modifikatoren an.
- Gibt die endgültige Scene7-Versand-URL zurück.
Erzeugen der Modifikatorzeichenfolge generate-modifiers-string
Die folgende Hilfsfunktion konvertiert das Modifikator-Array in eine URL-kompatible Abfragezeichenfolge.
export const getModifierString = (
selectedMedia
) => {
const { modifiers } = selectedMedia;
if (modifiers) {
const modifierString =
modifiers.length > 0
? modifiers.join('&')
: '';
return modifierString;
}
return null;
};
Die Funktion kombiniert alle ausgewählten Modifikatoren in einer einzigen Zeichenfolge, die durch kaufmännische Und-Zeichen (&) getrennt ist.
Beispiel:
[
'rotate=90',
'width=1200'
]
Rückgabe:
rotate=90&width=1200
Die generierte Zeichenfolge wird an die endgültige Dynamic Media-URL angehängt und wendet die ausgewählten Umwandlungen an, wenn das Asset bereitgestellt wird.
Siehe auch
- Assets übersetzen
- Assets-HTTP-API
- Von AEM Assets unterstützte Dateiformate
- Suchen von Assets
- Connected Assets
- Asset-Berichte
- Metadatenschemata
- Herunterladen von Assets
- Verwalten von Metadaten
- Verwalten von Dynamic Media-Vorlagen
- Verwalten von Berichten
- Suchfacetten
- Verwalten von Sammlungen
- Massenimport von Metadaten
- Veröffentlichen von Assets in AEM und Dynamic Media