Bestille utlevering av bevart materiale
Denne veiledningen viser hvordan du bestiller utlevering av materiale som er bevart i DPS, og hvordan du laster det ned. Utleveringen skjer asynkront: DPS kontrollerer og klargjør materialet først, og varsler deg når det er klart. Feltnavn og statuser er listet i API-referansen.
Før du starter
- Klientlegitimasjon og et tilgangstoken, med en konsumentrolle for kontrakten materialet tilhører. Se Autentisering og autorisasjon.
archiveIdfor materialet du vil ha. Den sendes i webhookensubmission.preservednår materialet er bevart.- Et webhook-endepunkt for å motta meldingen
dissemination.deliveredmed nedlastingslenkene. Se Motta varsler.
Steg
Bestill utlevering
Opprett en utlevering (dissemination) med archiveId. Bruk standard prioritet med mindre behovet er presserende.
Forespørsel
POST /dps-submission/v1/disseminations HTTP/1.1
Host: api.nb.no
Content-Type: application/json
Authorization: Bearer eyJhbGciOxxxxxxx
{
"archiveId": "019e404e-60ab-7457-b7c9-94c453242c69",
"priority": 50
}Respons (201 Created)
{
"disseminationId": "8Z7x1T9rN0Xc2B5Yq4L3zP",
"archiveId": "019e404e-60ab-7457-b7c9-94c453242c69",
"clientId": "client-id",
"contractId": "2d17",
"objectId": "digifoto_5584a028-ba43-4ecb-bb67-7663cc802010",
"sumSizeInBytes": 123456,
"status": "RECEIVED",
"priority": 50,
"dateCreated": "2025-09-09T12:34:56.123456+01:00"
}Lagre disseminationId fra responsen. Hvis en utlevering av det samme materialet allerede pågår, svarer API-et med 409 Conflict: hent den eksisterende utleveringen i stedet for å opprette en ny.
Vent til materialet er klargjort
DPS henter materialet fra repositoriet, kontrollerer integriteten og gjør det tilgjengelig for nedlasting. Dette kan ta litt tid. Når materialet er klart, mottar du en webhook-melding dissemination.delivered.
Du kan også følge statusen ved å hente utleveringen. Unngå hyppig polling; bruk eksponentiell backoff.
Forespørsel
GET /dps-submission/v1/disseminations/8Z7x1T9rN0Xc2B5Yq4L3zP HTTP/1.1
Host: api.nb.no
Content-Type: application/json
Authorization: Bearer eyJhbGciOxxxxxxxRespons (200 OK)
{
"disseminationId": "8Z7x1T9rN0Xc2B5Yq4L3zP",
"archiveId": "019e404e-60ab-7457-b7c9-94c453242c69",
"clientId": "client-id",
"contractId": "2d17",
"objectId": "digifoto_5584a028-ba43-4ecb-bb67-7663cc802010",
"sumSizeInBytes": 123456,
"status": "FIXITY_CHECK",
"priority": 50,
"dateCreated": "2025-09-09T12:34:56.123456+01:00"
}Last ned og kontroller filene
Meldingen dissemination.delivered inneholder en liste files. Last ned hver fil fra downloadURL og sammenlign den med checksum, med algoritmen som er angitt i checksumAlgorithm.
Last ned filene før lenkene utløper (expirationDate). Hvis lenkene utløper, send en ny forespørsel om utlevering; hver utlevering får nye lenker.
Beste praksis
- Gjenbruk eksisterende forespørsel hvis en allerede pågår.
- Bruk prioritet med måte – reserver lave verdier for presserende behov.
- Lagre
disseminationIdlokalt. - Håndter 409 ved å hente eksisterende i stedet for å poste på nytt.
- Poll med eksponentiell backoff.
- Last ned filene før lenkene utløper (
expirationDatei webhookendissemination.delivered). Hvis lenkene utløper, send en ny forespørsel om dissemination; hver dissemination får nye lenker.
Støtte
Kontakt teamet for digital bevaring for spørsmål eller hjelp.