Opp- og nedlasting av filer
Se også tilsvarende dokument for GraphQL-konsumenter.
Her beskriver vi i korte trekk flyten en klient må gjøre for å laste opp eller ned en fil. I dag gjør vi dette på flere forskjellige måter avhengig av forventet bruk og størrelse på filer.
base64-enkodet data i GraphQL
I de enkleste tilfellene vil filer kunne lastes opp og ned som base64-enkodet data.
Eksponering av signerte URL'er til klient
I noen tilfeller vil filopplasting og -nedlasting følge en flyt der klienten må be om signerte URL'er. Denne flyten følger mer eller mindre denne skissen:
Opplasting
1. Forespørsel om opplastings-URL
Klienten sender en forespørsel til GraphQL-API'et for å få en signert opplastings-URL for en spesifikk fil. Forespørselen inneholder blant annet:
FilnavnChecksumContent-TypeContent-Length
Når forespørselen er riktig vil API'et svare med en signert URL som kan brukes for opplastingen. Responsen vil også gi nødvendige signerte headere som må brukes videre. Denne URL'en er typisk bare gyldig i 10 minutter.
2. Klienten laster opp fil med PUT
Klienten kan nå laste opp filen direkte mot den signerte URL'en med HTTP PUT. Objektlageret vil bare godta opplasting dersom checksum stemmer og headerne er korrekte og samsvarer med signaturen.
3. Klienten sender bekreftelses-forespørsel til API'et
Etter at filen er opplastet må klienten sende en ny forespørsel til API'et for å verifisere at filen er riktig opplastet og registrert. Til denne forespørselen må man sende med nøkkel som API'et har gitt i steg 1.
Nedlasting
1. Forespørsel om nedlastings-URL
Klienten sender en forespørsel til GraphQL-API'et for å få en signert nedlastings-URL for en spesifikk fil. Når forespørselen er riktig vil API'et svare med en signert URL som kan brukes for nedlasting. Responsen vil også gi nødvendige signerte headere som må brukes videre. Denne URL'en er typisk bare gyldig i 10 minutter.
2. Klienten henter filen direkte med GET
Klienten kan nå laste ned filen direkte med URL'en.