Asset Compute Service HTTP-API asset-compute-http-api
Het gebruik van de API is beperkt tot ontwikkelingsdoeleinden. De API wordt als context verstrekt wanneer het ontwikkelen van douanetoepassingen. Adobe Experience Manager als Cloud Service gebruikt de API om de verwerkingsgegevens door te geven aan een aangepaste toepassing. Zie voor meer informatie Middelenmicroservices en verwerkingsprofielen gebruiken.
Elke client van de Asset Compute Service HTTP API moet deze stroom op hoog niveau volgen:
-
Een client is ingericht als Adobe Developer Console in een IMS-organisatie. Elke afzonderlijke client (systeem of omgeving) vereist een eigen afzonderlijk project om de gegevensstroom van de gebeurtenis te scheiden.
-
Een cliënt produceert een toegangstoken voor de technische rekening gebruikend JWT-verificatie (serviceaccount).
-
Een clientaanroep
/register
slechts eenmaal om de journaal-URL op te halen. -
Een clientaanroep
/process
voor elk element waarvoor het uitvoeringen wil genereren. De vraag is asynchroon. -
Een klant pollt regelmatig het dagboek naar ontvangen, gebeurtenissen. Er worden gebeurtenissen voor elke aangevraagde uitvoering ontvangen wanneer de uitvoering is verwerkt (
rendition_created
gebeurtenistype) of als er een fout is (rendition_failed
gebeurtenistype).
De @adobe/asset-compute-client maakt het gemakkelijk om API in code Node.js te gebruiken.
Verificatie en autorisatie authentication-and-authorization
Voor alle API's is verificatie van toegangstoken vereist. De verzoeken moeten de volgende kopballen plaatsen:
-
Authorization
header met token aan toonder, de token van een technische account, ontvangen via JWT-uitwisseling uit Adobe Developer Console-project. De bereik worden hieronder beschreven. -
x-gw-ims-org-id
met de IMS-organisatie-id. -
x-api-key
met de client-id van de Adobe Developers Console project.
Segmenten scopes
Verzeker het volgende werkingsgebied voor het toegangstoken:
openid
AdobeID
asset_compute
read_organizations
event_receiver
event_receiver_api
adobeio_api
additional_info.roles
additional_info.projectedProductContext
Hiervoor zijn Adobe Developer Console project waarop moet worden geabonneerd Asset Compute
, I/O Events
, en I/O Management API
diensten. De uitsplitsing van individuele scènes is:
-
Basis
- bereik:
openid,AdobeID
- bereik:
-
asset compute
- metareaal:
asset_compute_meta
- bereik:
asset_compute,read_organizations
- metareaal:
-
Adobe I/O Gebeurtenissen
- metareaal:
event_receiver_api
- bereik:
event_receiver,event_receiver_api
- metareaal:
-
Adobe I/O Beheer-API
- metareaal:
ent_adobeio_sdk
- bereik:
adobeio_api,additional_info.roles,additional_info.projectedProductContext
- metareaal:
Registratie register
Elke client van de Asset Compute service - een unieke Adobe Developer Console project geabonneerd op de dienst - most registreren voordat u verzoeken om verwerking indient. De registratiestap retourneert het unieke gebeurtenisjournaal dat vereist is om de asynchrone gebeurtenissen van de uitvoering op te halen.
Aan het einde van de levenscyclus kan een client unregister.
Aanvraag registreren register-request
Deze API-aanroep stelt een Asset Compute en geeft de URL van het gebeurtenisjournaal weer. Dit is een epidemische bewerking die slechts één keer voor elke client hoeft te worden uitgevoerd. Het kan opnieuw worden geroepen om het dagboek URL terug te winnen.
POST
/register
Authorization
x-request-id
Reactie registreren register-response
application/json
X-Request-Id
X-Request-Id
aanvraagkoptekst of een uniek gegenereerde header. Gebruik voor het identificeren van verzoeken over systemen en/of steunverzoeken.journal
, ok
en/of requestId
velden.De HTTP-statuscodes zijn:
-
200 succesvol: Wanneer het verzoek succesvol is. Het bevat de
journal
URL die op de hoogte wordt gesteld van de resultaten van de asynchrone verwerking die via/process
(als gebeurtenistype)rendition_created
wanneer succesvol, ofrendition_failed
bij falen).code language-json { "ok": true, "journal": "https://api.adobe.io/events/organizations/xxxxx/integrations/xxxx/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "requestId": "1234567890" }
-
401 Niet-geautoriseerd: komt voor wanneer het verzoek ongeldig is verificatie. Een voorbeeld kan een ongeldige toegangstoken of een ongeldige API-sleutel zijn.
-
403 Verboden: komt voor wanneer het verzoek ongeldig is autorisatie. Een voorbeeld kan een geldig toegangstoken zijn, maar het project van de Console van Adobe Developer (technische rekening) wordt niet geabonneerd aan alle vereiste diensten.
-
429 Te veel verzoeken: treedt op wanneer het systeem door deze cliënt of anders wordt overbelast. Clients moeten het opnieuw proberen met een exponentiële backoff. Het lichaam is leeg.
-
4xx-fout: Als er een andere clientfout is opgetreden en registratie is mislukt. Gewoonlijk wordt een JSON-reactie als deze geretourneerd, hoewel dat niet voor alle fouten wordt gegarandeerd:
code language-json { "ok": false, "requestId": "1234567890", "message": "error message" }
-
5xx-fout: treedt op wanneer er een andere serverfout is opgetreden en de registratie is mislukt. Gewoonlijk wordt een JSON-reactie als deze geretourneerd, hoewel dat niet voor alle fouten wordt gegarandeerd:
code language-json { "ok": false, "requestId": "1234567890", "message": "error message" }
Aanvraag ongedaan maken unregister-request
Met deze API-aanroep wordt de registratie van Asset Compute client. Hierna is het niet meer mogelijk /process
. Wanneer de API-aanroep voor een niet-geregistreerde client wordt gebruikt of een nog te registreren client een 404
fout.
POST
/unregister
Authorization
x-request-id
Reactie ongedaan maken unregister-response
application/json
X-Request-Id
X-Request-Id
aanvraagkoptekst of een uniek gegenereerde header. Gebruik voor het identificeren van verzoeken over systemen en/of steunverzoeken.ok
en requestId
velden.De statuscodes zijn:
-
200 succesvol: treedt op wanneer de registratie en het dagboek worden gevonden en verwijderd.
code language-json { "ok": true, "requestId": "1234567890" }
-
401 Niet-geautoriseerd: komt voor wanneer het verzoek ongeldig is verificatie. Een voorbeeld kan een ongeldige toegangstoken of een ongeldige API-sleutel zijn.
-
403 Verboden: komt voor wanneer het verzoek ongeldig is autorisatie. Een voorbeeld kan een geldig toegangstoken zijn, maar het project van de Console van Adobe Developer (technische rekening) wordt niet geabonneerd aan alle vereiste diensten.
-
404 Niet gevonden: komt voor wanneer er geen huidige registratie voor de bepaalde geloofsbrieven is.
code language-json { "ok": true, "requestId": "1234567890" }
-
429 Te veel verzoeken: treedt op wanneer het systeem wordt overbelast. Clients moeten het opnieuw proberen met een exponentiële backoff. Het lichaam is leeg.
-
4xx-fout: komt voor wanneer er een andere cliëntfout was en unregister ontbrak. Gewoonlijk wordt een JSON-reactie als deze geretourneerd, hoewel dat niet voor alle fouten wordt gegarandeerd:
code language-json { "ok": false, "requestId": "1234567890", "message": "error message" }
-
5xx-fout: treedt op wanneer er een andere serverfout is opgetreden en de registratie is mislukt. Gewoonlijk wordt een JSON-reactie als deze geretourneerd, hoewel dat niet voor alle fouten wordt gegarandeerd:
code language-json { "ok": false, "requestId": "1234567890", "message": "error message" }
Procesaanvraag process-request
De process
bewerking verzendt een taak die een bronelement in meerdere uitvoeringen omzet, op basis van de instructies in de aanvraag. Meldingen over geslaagde voltooiing (gebeurtenistype) rendition_created
) of fouten (gebeurtenistype) rendition_failed
) worden verzonden naar een gebeurtenisjournaal dat moet worden opgehaald met /register om het even welk aantal /process
verzoeken. Onjuist gevormde verzoeken ontbreken onmiddellijk met een 400 foutencode.
Er wordt verwezen naar binaire URL's, zoals vooraf ondertekende URL's van Amazon AWS S3 of Azure Blob Storage SAS URL's, voor beide leesbewerkingen van de source
activa (GET
URL's) en de vertoningen schrijven (PUT
URL's). De klant is verantwoordelijk voor het genereren van deze vooraf ondertekende URL's.
POST
/process
application/json
Authorization
x-request-id
Verzoek om verwerking JSON process-request-json
De verzoekende instantie /process
is een JSON-object met dit schema op hoog niveau:
{
"source": "",
"renditions" : []
}
De beschikbare velden zijn:
source
string
fmt=zip
)."http://example.com/image.jpg"
source
object
fmt=zip
).{"url": "http://example.com/image.jpg", "mimeType": "image/jpeg" }
renditions
array
[{ "target": "https://....", "fmt": "png" }]
De source
kan <string>
die als een URL wordt beschouwd of een <object>
met een extra veld. De volgende varianten zijn vergelijkbaar:
"source": "http://example.com/image.jpg"
"source": {
"url": "http://example.com/image.jpg"
}
Bronobjectvelden source-object-fields
url
string
"http://example.com/image.jpg"
name
string
content-disposition
header van de binaire bron. De standaardwaarde is "file"."image.jpg"
size
number
content-length
header van de binaire bron.10234
mimetype
string
content-type
header van de binaire bron."image/jpeg"
Een complete process
aanvraagvoorbeeld complete-process-request-example
{
"source": "https://www.adobe.com/content/dam/acom/en/lobby/lobby-bg-bts2017-logged-out-1440x860.jpg",
"renditions" : [{
"name": "image.48x48.png",
"target": "https://some-presigned-put-url-for-image.48x48.png",
"fmt": "png",
"width": 48,
"height": 48
},{
"name": "image.200x200.jpg",
"target": "https://some-presigned-put-url-for-image.200x200.jpg",
"fmt": "jpg",
"width": 200,
"height": 200
},{
"name": "cqdam.xmp.xml",
"target": "https://some-presigned-put-url-for-cqdam.xmp.xml",
"fmt": "xmp"
},{
"name": "cqdam.text.txt",
"target": "https://some-presigned-put-url-for-cqdam.text.txt",
"fmt": "text"
}]
}
Procesreactie process-response
De /process
het verzoek keert onmiddellijk met een succes of een mislukking terug die op de basisverzoekbevestiging wordt gebaseerd. De werkelijke verwerking van elementen gebeurt asynchroon.
application/json
X-Request-Id
X-Request-Id
aanvraagkoptekst of een uniek gegenereerde header. Gebruik voor het identificeren van verzoeken over systemen en/of steunverzoeken.ok
en requestId
velden.Statuscodes:
-
200 succesvol: Als het verzoek is verzonden. Response JSON omvat
"ok": true
:code language-json { "ok": true, "requestId": "1234567890" }
-
400 Ongeldig verzoek: Als de aanvraag onjuist is samengesteld, ontbreken bijvoorbeeld vereiste velden in de aanvraag-JSON. Response JSON omvat
"ok": false
:code language-json { "ok": false, "requestId": "1234567890", "message": "error message" }
-
401 Niet-geautoriseerd: Wanneer de aanvraag niet geldig is verificatie. Een voorbeeld kan een ongeldige toegangstoken of een ongeldige API-sleutel zijn.
-
403 Verboden: Wanneer de aanvraag niet geldig is autorisatie. Een voorbeeld kan een geldig toegangstoken zijn, maar het project van de Console van Adobe Developer (technische rekening) wordt niet geabonneerd aan alle vereiste diensten.
-
429 Te veel verzoeken: Wanneer het systeem door deze client of in het algemeen wordt overbelast. De clients kunnen het opnieuw proberen met een exponentiële backoff. Het lichaam is leeg.
-
4xx-fout: Wanneer er een andere clientfout is opgetreden. Gewoonlijk wordt een JSON-reactie als deze geretourneerd, hoewel dat niet voor alle fouten wordt gegarandeerd:
code language-json { "ok": false, "requestId": "1234567890", "message": "error message" }
-
5xx-fout: Als er een andere serverfout is opgetreden. Gewoonlijk wordt een JSON-reactie als deze geretourneerd, hoewel dat niet voor alle fouten wordt gegarandeerd:
code language-json { "ok": false, "requestId": "1234567890", "message": "error message" }
De meeste klanten zijn waarschijnlijk geneigd om exact hetzelfde verzoek opnieuw uit te voeren met exponentiële backoff bij elke fout behalve configuratieproblemen zoals 401 of 403 of ongeldige verzoeken zoals 400. Afgezien van een reguliere tariefbeperking via 429 reacties, kan een tijdelijke onderbreking of beperking van de service leiden tot 5x fouten. Het zou dan raadzaam zijn om na een bepaalde periode opnieuw te proberen.
Alle JSON-reacties (indien aanwezig) bevatten de requestId
dat dezelfde waarde heeft als de X-Request-Id
header. Het wordt aanbevolen om van de koptekst te lezen, aangezien deze altijd aanwezig is. De requestId
wordt ook geretourneerd in alle gebeurtenissen met betrekking tot verwerkingsverzoeken als requestId
. Clients mogen geen aanname maken over de opmaak van deze tekenreeks, het is een ondoorzichtige tekenreeks-id.
Inschakelen naar naverwerking opt-in-to-post-processing
De asset compute SDK ondersteunt een aantal basisopties voor nabewerking van afbeeldingen. Aangepaste workers kunnen zich expliciet aanmelden bij naverwerking door het veld in te stellen postProcess
op het weergaveobject naar true
.
De ondersteunde gebruiksgevallen zijn:
- Een vertoning uitsnijden naar een rechthoek waarvan de grenzen worden gedefinieerd door crop.w, crop.h, crop.x en crop.y. Het wordt gedefinieerd door
instructions.crop
in het weergaveobject. - Wijzig de grootte van afbeeldingen met breedte, hoogte of beide. Het wordt gedefinieerd door
instructions.width
eninstructions.height
in het weergaveobject. Als u alleen de breedte of hoogte wilt wijzigen, stelt u slechts één waarde in. Met Compute Service behoudt u de hoogte-breedteverhouding. - Stel de kwaliteit in voor een JPEG-afbeelding. Het wordt gedefinieerd door
instructions.quality
in het weergaveobject. De beste kwaliteit wordt aangegeven door100
en lagere waarden duiden op een lagere kwaliteit. - Maak geïnterlinieerde afbeeldingen. Het wordt gedefinieerd door
instructions.interlace
in het weergaveobject. - Stel DPI in om de gerenderde grootte aan te passen voor publicatie op het bureaublad door de schaal aan te passen die op de pixels wordt toegepast. Het wordt gedefinieerd door
instructions.dpi
in het weergaveobject om de dpi-resolutie te wijzigen. Als u de afbeelding echter zo wilt vergroten of verkleinen dat deze dezelfde grootte heeft bij een andere resolutie, gebruikt u de opdrachtconvertToDpi
instructies. - Wijzig de grootte van de afbeelding zodanig dat de weergegeven breedte of hoogte gelijk blijft aan het origineel bij de opgegeven doelresolutie (DPI). Het wordt gedefinieerd door
instructions.convertToDpi
in het weergaveobject.
Watermerkelementen add-watermark
De asset compute SDK ondersteunt het toevoegen van een watermerk aan PNG-, JPEG-, TIFF- en GIF-afbeeldingsbestanden. Het watermerk wordt toegevoegd na de vertoningsinstructies in het dialoogvenster watermark
object op de vertoning.
Watermerken worden uitgevoerd tijdens de nabewerking van de vertoning. De aangepaste worker voor watermerkelementen na verwerking door het veld in te stellen postProcess
op het weergaveobject naar true
. Als de worker niet de optie Weigeren inschakelt, wordt het watermerk niet toegepast, zelfs niet als het watermerkobject is ingesteld op het weergaveobject in de aanvraag.
Vertoningsinstructies rendition-instructions
Dit zijn de beschikbare opties voor de renditions
array in /process.
Algemene velden common-fields
fmt
string
text
voor tekstextractie en xmp
voor het extraheren van XMP metagegevens als xml. Zie ondersteunde indelingenpng
worker
string
https://
URL. Als dit veld aanwezig is, wordt de vertoning gemaakt door een aangepaste toepassing. Een ander setveld voor uitvoering wordt vervolgens gebruikt in de aangepaste toepassing."https://1234.adobeioruntime.net
/api/v1/web
/example-custom-worker-master/worker"
target
string
http://w.com/img.jpg
target
object
Vooraf ondertekende URL met meerdere delen uploadgegevens voor de gegenereerde uitvoering. Dit is bedoeld voor Binair uploaden van AEM/Eak met uploadgedrag voor meerdere delen.
Velden:
urls
: array van tekenreeksen, één voor elke vooraf ondertekende deel-URLminPartSize
: minimumgrootte voor één onderdeel = urlmaxPartSize
: de maximumgrootte voor één onderdeel = url
{ "urls": [ "https://part1...", "https://part2..." ], "minPartSize": 10000, "maxPartSize": 100000 }
userData
object
{ ... }
Vertoningsspecifieke velden rendition-specific-fields
Voor een lijst met momenteel ondersteunde bestandsindelingen raadpleegt u ondersteunde bestandsindelingen.
embedBinaryLimit
number
in bytesembedBinaryLimit
beperkt, wordt deze op een locatie in de cloudopslag geplaatst en wordt niet ingesloten in de gebeurtenis.3276
width
number
200
height
number
200
De verhouding blijft altijd behouden als:
- Beide
width
enheight
worden opgegeven, past de afbeelding in de grootte aan terwijl de hoogte-breedteverhouding behouden blijft - Alleen
width
of alleenheight
is opgegeven, gebruikt de resulterende afbeelding de corresponderende dimensie terwijl de hoogte-breedteverhouding behouden blijft - Als beide
width
nochheight
wordt opgegeven, wordt de oorspronkelijke pixelgrootte van de afbeelding gebruikt. Het hangt van het brontype af. Voor sommige indelingen, zoals PDF-bestanden, wordt een standaardgrootte gebruikt. Er kan een maximumgrootte zijn.
quality
number
1
tot 100
. Alleen van toepassing op afbeeldingsuitvoeringen.90
xmp
string
interlace
bool
true
. Dit heeft geen invloed op andere bestandsindelingen.jpegSize
number
quality
instellen. Heeft geen effect op andere indelingen.dpi
number
of object
96
of { xdpi: 96, ydpi: 96 }
convertToDpi
number
of object
96
of { xdpi: 96, ydpi: 96 }
files
array
Lijst met bestanden die moeten worden opgenomen in het ZIP-archief (fmt=zip
). Elk item kan een URL-tekenreeks zijn of een object met de velden:
url
: URL om bestand te downloadenpath
: Bestand onder dit pad opslaan in ZIP
[{ "url": "https://host/asset.jpg", "path": "folder/location/asset.jpg" }]
duplicate
string
fmt=zip
). Standaard wordt een fout gegenereerd bij meerdere bestanden die in het ZIP-bestand onder hetzelfde pad zijn opgeslagen. Instelling duplicate
tot ignore
resulteert alleen in het eerste element dat moet worden opgeslagen en de rest die moet worden genegeerd.ignore
Watermerkspecifieke velden watermark-specific-fields
De PNG-indeling wordt gebruikt als een watermerk.
scale
number
0.0
en 1.0
. 1.0
betekent dat het watermerk de oorspronkelijke schaal (1:1) heeft en de laagste waarden de grootte van het watermerk verminderen.0.5
de helft van de oorspronkelijke grootte.image
url
Asynchrone gebeurtenissen asynchronous-events
Nadat een vertoning is verwerkt of een fout optreedt, wordt een gebeurtenis verzonden naar een Adobe I/O Events Journal. Clients moeten luisteren naar de journaal-URL die via /register. De dagboekreactie omvat een event
array die bestaat uit één object voor elke gebeurtenis, waarvan de event
bevat het daadwerkelijke gebeurtenislaadveld.
De Adobe I/O Gebeurtenistype voor alle gebeurtenissen van het dialoogvenster Asset Compute Service is asset_compute
. Het dagboek wordt automatisch ingetekend op dit gebeurtenistype slechts en er is geen verdere vereiste om te filtreren die op Adobe I/O Type gebeurtenis. De de dienstspecifieke gebeurtenistypes zijn beschikbaar in type
eigenschap van de gebeurtenis.
Gebeurtenistypen event-types
rendition_created
rendition_failed
Gebeurteniskenmerken event-attributes
date
string
*
requestId
string
*
/process
, gelijk aan X-Request-Id
header.source
object
*
source
van de /process
verzoek.userData
object
*
userData
van de vertoning van de /process
request if set.rendition
object
rendition_*
/process
.errorMessage
string
rendition_failed
Metagegevens metadata
repo:size
repo:sha1
dc:format
repo:encoding
tiff:ImageWidth
tiff:ImageLength
Foutredenen error-reasons
RenditionFormatUnsupported
SourceUnsupported
SourceCorrupt
RenditionTooLarge
target
. De werkelijke weergavegrootte is beschikbaar als metagegevens in repo:size
en kan door de client worden gebruikt om deze vertoning opnieuw te verwerken met het juiste aantal vooraf ondertekende URL's.GenericError