POST/v1/uploads
Pokretanje učitavanja u dijelovima
create_upload
Otvara sesiju učitavanja za veliku datoteku (do ograničenja instalacije za učitavanje u dijelovima, prema zadanim postavkama 5 GB): naziv, vrstu sadržaja, veličinu i purpose (namjenu), koja određuje što će koristiti učitavanje: card_file (POST /v1/cards), archive (POST /v1/cards/archive) ili import_attachment (privitak dokumenta vlastitog izvora). Odgovor sadrži id (upl_ i zatim 32 heksadecimalna znaka), veličinu dijela part_size i broj dijelova part_count. Svaki dio osim posljednjeg ima točno part_size bajtova (od 5 do 100 MiB), a posljednji dio je ostatak. Nedovršeno učitavanje traje 24 sata (expires_at).
Nastavak naziva datoteke izvan formata namjene vraća 415 uploads.unsupported_format (privitak uvoza prihvaća bilo koji nastavak). Datoteka veća od ograničenja instalacije ili od ukupne pohrane organizacije prema njezinu planu vraća 413 uploads.too_large. Nedovoljno preostale pohrane, uključujući nedovršena učitavanja organizacije, vraća 402 limits.storage.
Dijelovi prolaze kroz Sursu (PUT /v1/uploads/{upload_id}/parts/{n}) i šifriraju se ključem organizacije u pohrani datoteka; izravnih poveznica na pohranu nema. Učitavanje može vidjeti i koristiti samo API ključ ili korisnik koji ga je stvorio. Dodano u verziji 1.62.0.
Autentifikacija
Pošaljite API ključ u zaglavlju Authorization: Authorization: Bearer <ključ>.
Parametri zaglavlja
Idempotency-KeystringKljuč za siguran ponovni pokušaj upisa: od 1 do 255 ispisivih ASCII znakova; preporučuje se UUID v4 po logičkoj operaciji. Ponovni pokušaj s istim ključem unutar 24 sata ne izvodi operaciju ponovno: vraća spremljeni odgovor (status, zaglavlja i tijelo) sa zaglavljem
Idempotency-Replayed: true. Isti ključ s drugom metodom, putanjom,Content-Typeili tijelom vraća409 api.idempotency_mismatch; dok se prvi zahtjev još izvodi –409 api.idempotency_in_progresssRetry-After: 1. Nakon odgovora 5xx ili 429 ključ se oslobađa i ponovni pokušaj ponovno izvodi operaciju. Ključ vrijedi u okviru organizacije i pozivatelja (API ključ, korisnik ili ključ vlastitog izvora).length ≥ 1, length ≤ 255
Tijelo zahtjeva
application/json
filenamestringobaveznoNaziv datoteke s nastavkom; nastavak određuje format.
length ≥ 1, length ≤ 255
content_typestringDeklarirana vrsta sadržaja (MIME); uspoređuje se s potpisom datoteke.
length ≤ 255
sizeinteger (int64)obaveznoVeličina datoteke u bajtovima.
≥ 1
sha256stringSHA-256 datoteke, ako je unaprijed poznat;
completes njim uspoređuje kontrolni zbroj datoteke.
Odgovori
201Sesija učitavanja je stvorena.
Zaglavlja odgovora
RateLimit-PolicyOgraničenja na snazi, u formatu IETF nacrta
draft-ietf-httpapi-ratelimit-headers: stavke odvojene zarezima"<name>";q=<quota>;w=<window in seconds>.keyje učestalost zahtjeva API ključa (kvota je nalet, prozor je vrijeme do njegova potpunog obnavljanja; za sesiju je touser, bez vjerodajnicaip);minute,dayimonthsu kvote organizacije za kalendarsku minutu, dan i mjesec po UTC-u.RateLimitŠto je preostalo od svakog ograničenja u
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitOgraničenje najstrože stavke u
RateLimit-Policy(one s najmanje preostalih zahtjeva).X-RateLimit-RemainingPreostali zahtjevi u okviru najstrožeg ograničenja.
X-RateLimit-ResetBroj sekundi do obnove najstrožeg ograničenja.
Idempotency-Replayedtrueznači da je odgovor ponovljen iz spremljenog odgovora za ovajIdempotency-Key: operacija se nije ponovno izvela.
application/json
idstringobaveznoID učitavanja (
upl_i 32 heksadecimalna znaka).filenamestringobaveznoNaziv datoteke (bez mapa).
content_typestringobaveznoDeklarirana vrsta sadržaja; prazno ako nije deklarirana.
sizeinteger (int64)obaveznoVeličina datoteke u bajtovima.
sha256string | nullobaveznoSHA-256 datoteke, deklariran pri stvaranju ili pri
complete;nullako još nije poznat.part_sizeinteger (int64)obaveznoVeličina svakog dijela osim posljednjeg (od 5 do 100 MiB).
part_countintegerobaveznoBroj dijelova.
≥ 1, ≤ 1000
parts_receivedintegerobaveznoBroj primljenih dijelova.
≥ 0
Primljeni dijelovi prema broju (prazno u odgovoru na
POST /v1/uploads).reject_reasonstring | nullobaveznoRazlog odbijanja (
rejected):checksum_mismatch,type_mismatch,unsupported_format,infected,scan_unavailable,unsafe_content. Nabrajanje se može proširiti;nullako učitavanje nije odbijeno.reject_detailsobject | nullobaveznoPojedinosti odbijanja (nastavak, deklarirani i utvrđeni format, kontrolni zbrojevi);
nullako učitavanje nije odbijeno.created_atstring (date-time)obaveznoKada je učitavanje stvoreno.
expires_atstring (date-time)obaveznoRok za dovršetak učitavanja i, kad je spremno, za njegovu upotrebu.
completed_atstring (date-time) | nullobaveznoKada je provjera završila (
readyilirejected).consumed_atstring (date-time) | nullobaveznoKada je učitavanje iskorišteno (za karticu, arhivu ili uvoz).
401Vjerodajnice nisu poslane (ni kolačić sesije ni API ključ) ili ključ nije pronađen.
Zaglavlja odgovora
RateLimit-PolicyOgraničenja na snazi, u formatu IETF nacrta
draft-ietf-httpapi-ratelimit-headers: stavke odvojene zarezima"<name>";q=<quota>;w=<window in seconds>.keyje učestalost zahtjeva API ključa (kvota je nalet, prozor je vrijeme do njegova potpunog obnavljanja; za sesiju je touser, bez vjerodajnicaip);minute,dayimonthsu kvote organizacije za kalendarsku minutu, dan i mjesec po UTC-u.RateLimitŠto je preostalo od svakog ograničenja u
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitOgraničenje najstrože stavke u
RateLimit-Policy(one s najmanje preostalih zahtjeva).X-RateLimit-RemainingPreostali zahtjevi u okviru najstrožeg ograničenja.
X-RateLimit-ResetBroj sekundi do obnove najstrožeg ograničenja.
application/json
402Organizacija je dosegla ograničenje plana (kartice, pohrana ili korisnici). `error.details` sadrži `kind`, `limit` i `used`.
Zaglavlja odgovora
RateLimit-PolicyOgraničenja na snazi, u formatu IETF nacrta
draft-ietf-httpapi-ratelimit-headers: stavke odvojene zarezima"<name>";q=<quota>;w=<window in seconds>.keyje učestalost zahtjeva API ključa (kvota je nalet, prozor je vrijeme do njegova potpunog obnavljanja; za sesiju je touser, bez vjerodajnicaip);minute,dayimonthsu kvote organizacije za kalendarsku minutu, dan i mjesec po UTC-u.RateLimitŠto je preostalo od svakog ograničenja u
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitOgraničenje najstrože stavke u
RateLimit-Policy(one s najmanje preostalih zahtjeva).X-RateLimit-RemainingPreostali zahtjevi u okviru najstrožeg ograničenja.
X-RateLimit-ResetBroj sekundi do obnove najstrožeg ograničenja.
application/json
403Radnja nije dopuštena: uloga nije dovoljna, nema pristupa zbirci ili kartici, zahtjev se izvodi u načinu „View as” ili je organizacija suspendirana ili izbrisana (`detail` je objekt s `code: org_suspended | org_deleted`).
Zaglavlja odgovora
RateLimit-PolicyOgraničenja na snazi, u formatu IETF nacrta
draft-ietf-httpapi-ratelimit-headers: stavke odvojene zarezima"<name>";q=<quota>;w=<window in seconds>.keyje učestalost zahtjeva API ključa (kvota je nalet, prozor je vrijeme do njegova potpunog obnavljanja; za sesiju je touser, bez vjerodajnicaip);minute,dayimonthsu kvote organizacije za kalendarsku minutu, dan i mjesec po UTC-u.RateLimitŠto je preostalo od svakog ograničenja u
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitOgraničenje najstrože stavke u
RateLimit-Policy(one s najmanje preostalih zahtjeva).X-RateLimit-RemainingPreostali zahtjevi u okviru najstrožeg ograničenja.
X-RateLimit-ResetBroj sekundi do obnove najstrožeg ograničenja.
application/json
413Tijelo zahtjeva premašuje dopuštenu veličinu.
Zaglavlja odgovora
RateLimit-PolicyOgraničenja na snazi, u formatu IETF nacrta
draft-ietf-httpapi-ratelimit-headers: stavke odvojene zarezima"<name>";q=<quota>;w=<window in seconds>.keyje učestalost zahtjeva API ključa (kvota je nalet, prozor je vrijeme do njegova potpunog obnavljanja; za sesiju je touser, bez vjerodajnicaip);minute,dayimonthsu kvote organizacije za kalendarsku minutu, dan i mjesec po UTC-u.RateLimitŠto je preostalo od svakog ograničenja u
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitOgraničenje najstrože stavke u
RateLimit-Policy(one s najmanje preostalih zahtjeva).X-RateLimit-RemainingPreostali zahtjevi u okviru najstrožeg ograničenja.
X-RateLimit-ResetBroj sekundi do obnove najstrožeg ograničenja.
application/json
415Format datoteke nije podržan.
Zaglavlja odgovora
RateLimit-PolicyOgraničenja na snazi, u formatu IETF nacrta
draft-ietf-httpapi-ratelimit-headers: stavke odvojene zarezima"<name>";q=<quota>;w=<window in seconds>.keyje učestalost zahtjeva API ključa (kvota je nalet, prozor je vrijeme do njegova potpunog obnavljanja; za sesiju je touser, bez vjerodajnicaip);minute,dayimonthsu kvote organizacije za kalendarsku minutu, dan i mjesec po UTC-u.RateLimitŠto je preostalo od svakog ograničenja u
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitOgraničenje najstrože stavke u
RateLimit-Policy(one s najmanje preostalih zahtjeva).X-RateLimit-RemainingPreostali zahtjevi u okviru najstrožeg ograničenja.
X-RateLimit-ResetBroj sekundi do obnove najstrožeg ograničenja.
application/json
422Pogreška provjere valjanosti: tijelo ili parametri ne odgovaraju shemi (`detail` je popis pogrešaka provjere valjanosti) ili je vrijednost parametra izvan raspona (`detail` je poruka).
Zaglavlja odgovora
RateLimit-PolicyOgraničenja na snazi, u formatu IETF nacrta
draft-ietf-httpapi-ratelimit-headers: stavke odvojene zarezima"<name>";q=<quota>;w=<window in seconds>.keyje učestalost zahtjeva API ključa (kvota je nalet, prozor je vrijeme do njegova potpunog obnavljanja; za sesiju je touser, bez vjerodajnicaip);minute,dayimonthsu kvote organizacije za kalendarsku minutu, dan i mjesec po UTC-u.RateLimitŠto je preostalo od svakog ograničenja u
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitOgraničenje najstrože stavke u
RateLimit-Policy(one s najmanje preostalih zahtjeva).X-RateLimit-RemainingPreostali zahtjevi u okviru najstrožeg ograničenja.
X-RateLimit-ResetBroj sekundi do obnove najstrožeg ograničenja.
application/json
429Previše zahtjeva (`api.rate_limited`), kvota organizacije za minutu, dan ili mjesec je potrošena (`api.quota_exceeded`; `error.details` sadrži `quota`, `limit` i `reset_at`), dosegnuto je ograničenje organizacije ili je usluga odgovora zauzeta (`answers.engine_busy`). Pričekajte vrijeme navedeno u zaglavlju `Retry-After`.
Zaglavlja odgovora
Retry-AfterBroj sekundi koje treba pričekati prije ponovnog pokušaja zahtjeva.
RateLimit-PolicyOgraničenja na snazi, u formatu IETF nacrta
draft-ietf-httpapi-ratelimit-headers: stavke odvojene zarezima"<name>";q=<quota>;w=<window in seconds>.keyje učestalost zahtjeva API ključa (kvota je nalet, prozor je vrijeme do njegova potpunog obnavljanja; za sesiju je touser, bez vjerodajnicaip);minute,dayimonthsu kvote organizacije za kalendarsku minutu, dan i mjesec po UTC-u.RateLimitŠto je preostalo od svakog ograničenja u
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitOgraničenje najstrože stavke u
RateLimit-Policy(one s najmanje preostalih zahtjeva).X-RateLimit-RemainingPreostali zahtjevi u okviru najstrožeg ograničenja.
X-RateLimit-ResetBroj sekundi do obnove najstrožeg ograničenja.
application/json
Kodovi pogrešaka
Kodovi koje ova operacija može vratiti u error.code, uz opće kodove svakog zahtjeva.
Sigurni ponovni pokušaji
Uz svaki POST i PATCH pošaljite zaglavlje Idempotency-Key (na primjer UUID). Ponovni pokušaj s istim ključem unutar 24 sata vraća spremljeni odgovor umjesto da ponovno izvrši zahtjev.
Ograničenja učestalosti
Odgovori sadrže zaglavlja RateLimit i RateLimit-Policy te ranija zaglavlja X-RateLimit-Limit, X-RateLimit-Remaining i X-RateLimit-Reset. Odgovor 429 sadrži zaglavlje Retry-After u sekundama: pričekajte i pokušajte ponovno.