POST/v1/uploads
Začať viacdielne nahrávanie
create_upload
Otvorí reláciu nahrávania veľkého súboru (do limitu inštalácie pre viacdielne nahrávanie, predvolene 5 GB): názov, typ obsahu, veľkosť a purpose, ktorý určuje, čo nahrávanie použije: card_file (POST /v1/cards), archive (POST /v1/cards/archive) alebo import_attachment (príloha dokumentu vlastného zdroja). Odpoveď obsahuje id (upl_ a za ním 32 hexadecimálnych znakov), veľkosť časti part_size a počet častí part_count. Každá časť okrem poslednej má presne part_size bajtov (od 5 do 100 MiB) a posledná časť je zvyšok. Nedokončené nahrávanie existuje 24 hodín (expires_at).
Prípona názvu súboru mimo formátov daného účelu vráti 415 uploads.unsupported_format (príloha importu prijíma akúkoľvek príponu). Súbor väčší ako limit inštalácie alebo ako celkové úložisko organizácie podľa jej tarify vráti 413 uploads.too_large. Nedostatok zostávajúceho úložiska, vrátane nedokončených nahrávaní organizácie, vráti 402 limits.storage.
Časti prechádzajú cez Sursu (PUT /v1/uploads/{upload_id}/parts/{n}) a v úložisku súborov sa šifrujú kľúčom organizácie; priame odkazy na úložisko neexistujú. Nahrávanie vidí a môže použiť len kľúč API alebo používateľ, ktorý ho vytvoril. Pridané vo verzii 1.62.0.
Autentifikácia
Odošlite kľúč API v hlavičke Authorization: Authorization: Bearer <kľúč>.
Parametre hlavičky
Idempotency-KeystringKľúč na bezpečné opakovanie zápisu: 1 až 255 tlačiteľných znakov ASCII; odporúča sa UUID v4 pre každú logickú operáciu. Opakovanie s tým istým kľúčom do 24 hodín operáciu znova nespustí: vráti uloženú odpoveď (stav, hlavičky a telo) s hlavičkou
Idempotency-Replayed: true. Ten istý kľúč s inou metódou, cestou,Content-Typealebo telom vráti409 api.idempotency_mismatch; kým prvá požiadavka ešte prebieha, vráti409 api.idempotency_in_progresssRetry-After: 1. Po odpovedi 5xx alebo 429 sa kľúč uvoľní a opakovanie operáciu spustí znova. Kľúč platí v rámci organizácie a volajúceho (kľúč API, používateľ alebo kľúč vlastného zdroja).length ≥ 1, length ≤ 255
Telo požiadavky
application/json
filenamestringpovinnéNázov súboru s príponou; prípona určuje formát.
length ≥ 1, length ≤ 255
content_typestringDeklarovaný typ obsahu (MIME); porovnáva sa so signatúrou súboru.
length ≤ 255
sizeinteger (int64)povinnéVeľkosť súboru v bajtoch.
≥ 1
sha256stringSHA-256 súboru, ak je vopred známy;
completes ním porovná kontrolný súčet.
Odpovede
201Relácia nahrávania je vytvorená.
Hlavičky odpovede
RateLimit-PolicyPlatné limity vo formáte návrhu IETF
draft-ietf-httpapi-ratelimit-headers: položky oddelené čiarkami"<name>";q=<quota>;w=<window in seconds>.keyje frekvencia požiadaviek kľúča API (kvóta je nárazová špička, okno je čas na jej úplné doplnenie; pre reláciu je touser, bez prihlasovacích údajovip);minute,dayamonthsú kvóty organizácie na kalendárnu minútu, deň a mesiac v UTC.RateLimitČo zostáva z každého limitu v
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimit najprísnejšej položky v
RateLimit-Policy(tej, ktorej zostáva najmenej požiadaviek).X-RateLimit-RemainingPočet požiadaviek, ktoré zostávajú v rámci najprísnejšieho limitu.
X-RateLimit-ResetPočet sekúnd do obnovenia najprísnejšieho limitu.
Idempotency-Replayedtrueznamená, že odpoveď bola zopakovaná z uloženej odpovede pre tentoIdempotency-Key: operácia sa znova nespustila.
application/json
idstringpovinnéID nahrávania (
upl_a za ním 32 hexadecimálnych znakov).filenamestringpovinnéNázov súboru (bez priečinkov).
content_typestringpovinnéDeklarovaný typ obsahu; prázdne, ak nebol deklarovaný.
sizeinteger (int64)povinnéVeľkosť súboru v bajtoch.
sha256string | nullpovinnéSHA-256 súboru deklarovaný pri vytvorení alebo pri
complete;null, ak ešte nie je známy.part_sizeinteger (int64)povinnéVeľkosť každej časti okrem poslednej (od 5 do 100 MiB).
part_countintegerpovinnéPočet častí.
≥ 1, ≤ 1000
parts_receivedintegerpovinnéPočet prijatých častí.
≥ 0
Prijaté časti podľa čísla (v odpovedi
POST /v1/uploadsprázdne).reject_reasonstring | nullpovinnéDôvod zamietnutia (
rejected):checksum_mismatch,type_mismatch,unsupported_format,infected,scan_unavailable,unsafe_content. Výčet sa môže rozširovať;null, ak nahrávanie nebolo zamietnuté.reject_detailsobject | nullpovinnéPodrobnosti zamietnutia (prípona, deklarovaný a zistený formát, kontrolné súčty);
null, ak nahrávanie nebolo zamietnuté.created_atstring (date-time)povinnéKedy bolo nahrávanie vytvorené.
expires_atstring (date-time)povinnéTermín na dokončenie nahrávania a, keď je pripravené, aj na jeho použitie.
completed_atstring (date-time) | nullpovinnéKedy sa kontrola skončila (
readyaleborejected).consumed_atstring (date-time) | nullpovinnéKedy bolo nahrávanie použité (kartou, archívom alebo importom).
401Neboli odoslané žiadne prihlasovacie údaje (ani cookie relácie, ani kľúč API) alebo sa kľúč nenašiel.
Hlavičky odpovede
RateLimit-PolicyPlatné limity vo formáte návrhu IETF
draft-ietf-httpapi-ratelimit-headers: položky oddelené čiarkami"<name>";q=<quota>;w=<window in seconds>.keyje frekvencia požiadaviek kľúča API (kvóta je nárazová špička, okno je čas na jej úplné doplnenie; pre reláciu je touser, bez prihlasovacích údajovip);minute,dayamonthsú kvóty organizácie na kalendárnu minútu, deň a mesiac v UTC.RateLimitČo zostáva z každého limitu v
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimit najprísnejšej položky v
RateLimit-Policy(tej, ktorej zostáva najmenej požiadaviek).X-RateLimit-RemainingPočet požiadaviek, ktoré zostávajú v rámci najprísnejšieho limitu.
X-RateLimit-ResetPočet sekúnd do obnovenia najprísnejšieho limitu.
application/json
402Organizácia dosiahla limit tarify (karty, úložisko alebo používatelia). `error.details` obsahuje `kind`, `limit` a `used`.
Hlavičky odpovede
RateLimit-PolicyPlatné limity vo formáte návrhu IETF
draft-ietf-httpapi-ratelimit-headers: položky oddelené čiarkami"<name>";q=<quota>;w=<window in seconds>.keyje frekvencia požiadaviek kľúča API (kvóta je nárazová špička, okno je čas na jej úplné doplnenie; pre reláciu je touser, bez prihlasovacích údajovip);minute,dayamonthsú kvóty organizácie na kalendárnu minútu, deň a mesiac v UTC.RateLimitČo zostáva z každého limitu v
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimit najprísnejšej položky v
RateLimit-Policy(tej, ktorej zostáva najmenej požiadaviek).X-RateLimit-RemainingPočet požiadaviek, ktoré zostávajú v rámci najprísnejšieho limitu.
X-RateLimit-ResetPočet sekúnd do obnovenia najprísnejšieho limitu.
application/json
403Akcia nie je povolená: rola nestačí, chýba prístup ku kolekcii alebo karte, požiadavka beží v režime „View as“ alebo je organizácia pozastavená či odstránená (`detail` je objekt s `code: org_suspended | org_deleted`).
Hlavičky odpovede
RateLimit-PolicyPlatné limity vo formáte návrhu IETF
draft-ietf-httpapi-ratelimit-headers: položky oddelené čiarkami"<name>";q=<quota>;w=<window in seconds>.keyje frekvencia požiadaviek kľúča API (kvóta je nárazová špička, okno je čas na jej úplné doplnenie; pre reláciu je touser, bez prihlasovacích údajovip);minute,dayamonthsú kvóty organizácie na kalendárnu minútu, deň a mesiac v UTC.RateLimitČo zostáva z každého limitu v
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimit najprísnejšej položky v
RateLimit-Policy(tej, ktorej zostáva najmenej požiadaviek).X-RateLimit-RemainingPočet požiadaviek, ktoré zostávajú v rámci najprísnejšieho limitu.
X-RateLimit-ResetPočet sekúnd do obnovenia najprísnejšieho limitu.
application/json
413Telo požiadavky presahuje povolenú veľkosť.
Hlavičky odpovede
RateLimit-PolicyPlatné limity vo formáte návrhu IETF
draft-ietf-httpapi-ratelimit-headers: položky oddelené čiarkami"<name>";q=<quota>;w=<window in seconds>.keyje frekvencia požiadaviek kľúča API (kvóta je nárazová špička, okno je čas na jej úplné doplnenie; pre reláciu je touser, bez prihlasovacích údajovip);minute,dayamonthsú kvóty organizácie na kalendárnu minútu, deň a mesiac v UTC.RateLimitČo zostáva z každého limitu v
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimit najprísnejšej položky v
RateLimit-Policy(tej, ktorej zostáva najmenej požiadaviek).X-RateLimit-RemainingPočet požiadaviek, ktoré zostávajú v rámci najprísnejšieho limitu.
X-RateLimit-ResetPočet sekúnd do obnovenia najprísnejšieho limitu.
application/json
415Formát súboru nie je podporovaný.
Hlavičky odpovede
RateLimit-PolicyPlatné limity vo formáte návrhu IETF
draft-ietf-httpapi-ratelimit-headers: položky oddelené čiarkami"<name>";q=<quota>;w=<window in seconds>.keyje frekvencia požiadaviek kľúča API (kvóta je nárazová špička, okno je čas na jej úplné doplnenie; pre reláciu je touser, bez prihlasovacích údajovip);minute,dayamonthsú kvóty organizácie na kalendárnu minútu, deň a mesiac v UTC.RateLimitČo zostáva z každého limitu v
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimit najprísnejšej položky v
RateLimit-Policy(tej, ktorej zostáva najmenej požiadaviek).X-RateLimit-RemainingPočet požiadaviek, ktoré zostávajú v rámci najprísnejšieho limitu.
X-RateLimit-ResetPočet sekúnd do obnovenia najprísnejšieho limitu.
application/json
422Chyba validácie: telo alebo parametre nezodpovedajú schéme (`detail` je zoznam chýb validácie) alebo je hodnota parametra mimo rozsahu (`detail` je správa).
Hlavičky odpovede
RateLimit-PolicyPlatné limity vo formáte návrhu IETF
draft-ietf-httpapi-ratelimit-headers: položky oddelené čiarkami"<name>";q=<quota>;w=<window in seconds>.keyje frekvencia požiadaviek kľúča API (kvóta je nárazová špička, okno je čas na jej úplné doplnenie; pre reláciu je touser, bez prihlasovacích údajovip);minute,dayamonthsú kvóty organizácie na kalendárnu minútu, deň a mesiac v UTC.RateLimitČo zostáva z každého limitu v
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimit najprísnejšej položky v
RateLimit-Policy(tej, ktorej zostáva najmenej požiadaviek).X-RateLimit-RemainingPočet požiadaviek, ktoré zostávajú v rámci najprísnejšieho limitu.
X-RateLimit-ResetPočet sekúnd do obnovenia najprísnejšieho limitu.
application/json
429Príliš veľa požiadaviek (`api.rate_limited`), vyčerpaná kvóta organizácie na minútu, deň alebo mesiac (`api.quota_exceeded`; `error.details` obsahuje `quota`, `limit` a `reset_at`), dosiahnutý limit organizácie alebo zaneprázdnená služba odpovedí (`answers.engine_busy`). Počkajte čas uvedený v hlavičke `Retry-After`.
Hlavičky odpovede
Retry-AfterPočet sekúnd, ktoré treba počkať pred opakovaním požiadavky.
RateLimit-PolicyPlatné limity vo formáte návrhu IETF
draft-ietf-httpapi-ratelimit-headers: položky oddelené čiarkami"<name>";q=<quota>;w=<window in seconds>.keyje frekvencia požiadaviek kľúča API (kvóta je nárazová špička, okno je čas na jej úplné doplnenie; pre reláciu je touser, bez prihlasovacích údajovip);minute,dayamonthsú kvóty organizácie na kalendárnu minútu, deň a mesiac v UTC.RateLimitČo zostáva z každého limitu v
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLimit najprísnejšej položky v
RateLimit-Policy(tej, ktorej zostáva najmenej požiadaviek).X-RateLimit-RemainingPočet požiadaviek, ktoré zostávajú v rámci najprísnejšieho limitu.
X-RateLimit-ResetPočet sekúnd do obnovenia najprísnejšieho limitu.
application/json
Chybové kódy
Kódy, ktoré táto operácia môže vrátiť v error.code, okrem všeobecných kódov každej požiadavky.
Bezpečné opakovanie
S každou požiadavkou POST a PATCH odošlite hlavičku Idempotency-Key (napríklad UUID). Opakovaná požiadavka s rovnakým kľúčom do 24 hodín vráti uloženú odpoveď namiesto toho, aby sa požiadavka vykonala znova.
Limity frekvencie
Odpovede obsahujú hlavičky RateLimit a RateLimit-Policy a staršie X-RateLimit-Limit, X-RateLimit-Remaining a X-RateLimit-Reset. Odpoveď 429 má hlavičku Retry-After v sekundách: počkajte a požiadavku zopakujte.