POST/v1/uploads/{upload_id}/complete
Pabeigt augšupielādi
complete_upload
Kad visas daļas ir saņemtas, Sursa saliek failu, salīdzina visa faila SHA-256 ar sha256 saturā un veic tās pašas pārbaudes kā augšupielādei vienā pieprasījumā: formātu pēc satura paraksta un pretvīrusu pārbaudi. Rezultāts ir ready vai rejected ar reject_reason (checksum_mismatch, type_mismatch, unsupported_format, infected, scan_unavailable, unsafe_content). Katrs formāta vai pretvīrusu pārbaudes noraidījums tiek ierakstīts audita žurnālā kā file.rejected.
Atbilde 200 nozīmē, ka rezultāts ir gatavs; 202 – ka fails vēl tiek pārbaudīts (processing), un rezultātu sniedz GET /v1/uploads/{upload_id}. Ja statuss atgriežas uz pending (API instances restarts pārtrauca pārbaudi), nosūtiet complete vēlreiz. Atkārtots complete pēc rezultāta atgriež to pašu rezultātu. Trūkstošas daļas atgriež 409 uploads.incomplete (details.missing). sha256, kas atšķiras no izveidē deklarētā, vai parts[].etag, kas atšķiras no saņemtās daļas, atgriež 422 uploads.checksum_mismatch. Gatava augšupielāde, kas netiek izmantota, ir derīga 24 stundas. Pievienots versijā 1.62.0.
Autentifikācija
Nosūtiet API atslēgu galvenē Authorization: Authorization: Bearer <atslēga>.
Ceļa parametri
upload_idstringobligātsAugšupielādes ID (
upl_, kam seko 32 heksadecimālas rakstzīmes).length ≤ 64
Galvenes parametri
Idempotency-KeystringAtslēga drošam rakstīšanas darbības atkārtojumam: 1–255 drukājamas ASCII rakstzīmes; ieteicams viens UUID v4 katrai loģiskajai operācijai. Atkārtojums ar to pašu atslēgu 24 stundu laikā operāciju neizpilda vēlreiz: tiek atgriezta saglabātā atbilde (statuss, galvenes un saturs) ar galveni
Idempotency-Replayed: true. Tā pati atslēga ar citu metodi, ceļu,Content-Typevai saturu atgriež409 api.idempotency_mismatch; kamēr pirmais pieprasījums vēl izpildās –409 api.idempotency_in_progressarRetry-After: 1. Pēc atbildes 5xx vai 429 atslēga tiek atbrīvota, un atkārtojums izpilda operāciju vēlreiz. Atslēga ir piesaistīta organizācijai un izsaucējam (API atslēgai, lietotājam vai pielāgotā avota atslēgai).length ≥ 1, length ≤ 255
Pieprasījuma saturs
application/json
sha256stringobligātsVisa faila SHA-256.
partsarray of UploadPartRefNeobligāta daļu pārbaude: katras daļas ETag, kā to atgriež
PUT …/parts/{n}.items ≤ 1000
Atbildes
200Rezultāts ir gatavs: `ready` vai `rejected`.
Atbildes galvenes
RateLimit-PolicySpēkā esošie limiti IETF dokumenta projekta
draft-ietf-httpapi-ratelimit-headersformātā: ar komatiem atdalīti elementi"<name>";q=<quota>;w=<window in seconds>.keyir API atslēgas pieprasījumu biežums (kvota ir īslaicīgais pīķis, laika logs – laiks, kurā kvota pilnībā atjaunojas; sesijai tas iruser, bez akreditācijas datiem –ip);minute,dayunmonthir organizācijas kvotas kalendārajai minūtei, dienai un mēnesim pēc UTC.RateLimitCik atlicis no katra
RateLimit-Policylimita:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitStingrākā
RateLimit-Policyieraksta limits (tā, kurā atlicis vismazāk pieprasījumu).X-RateLimit-RemainingAtlikušo pieprasījumu skaits stingrākā limita ietvaros.
X-RateLimit-ResetSekundes līdz stingrākā limita atiestatīšanai.
Idempotency-Replayedtruenozīmē, ka atbilde ir atkārtota no šaiIdempotency-Keysaglabātās atbildes: operācija netika izpildīta vēlreiz.
application/json
idstringobligātsAugšupielādes ID (
upl_un 32 heksadecimālas rakstzīmes).filenamestringobligātsFaila nosaukums (bez mapēm).
content_typestringobligātsDeklarētais satura tips; tukšs, ja nav deklarēts.
sizeinteger (int64)obligātsFaila izmērs baitos.
sha256string | nullobligātsFaila SHA-256, kas deklarēts izveides laikā vai ar
complete;null, ja vēl nav zināms.part_sizeinteger (int64)obligātsKatras daļas izmērs, izņemot pēdējo (no 5 līdz 100 MiB).
part_countintegerobligātsDaļu skaits.
≥ 1, ≤ 1000
parts_receivedintegerobligātsSaņemto daļu skaits.
≥ 0
Saņemtās daļas pēc numura (atbildē uz
POST /v1/uploads– tukšs).reject_reasonstring | nullobligātsNoraidīšanas iemesls (
rejected):checksum_mismatch,type_mismatch,unsupported_format,infected,scan_unavailable,unsafe_content. Uzskaitījums var paplašināties;null, ja nav noraidīts.reject_detailsobject | nullobligātsNoraidīšanas informācija (paplašinājums, deklarētais un noteiktais formāts, kontrolsummas);
null, ja nav noraidīts.created_atstring (date-time)obligātsKad augšupielāde izveidota.
expires_atstring (date-time)obligātsTermiņš, līdz kuram augšupielāde jāpabeidz un, kad tā ir gatava, jāizmanto.
completed_atstring (date-time) | nullobligātsKad pārbaude beidzās (
readyvairejected).consumed_atstring (date-time) | nullobligātsKad augšupielāde izmantota (kartītei, arhīvam vai importam).
202Fails vēl tiek pārbaudīts (`processing`).
Atbildes galvenes
RateLimit-PolicySpēkā esošie limiti IETF dokumenta projekta
draft-ietf-httpapi-ratelimit-headersformātā: ar komatiem atdalīti elementi"<name>";q=<quota>;w=<window in seconds>.keyir API atslēgas pieprasījumu biežums (kvota ir īslaicīgais pīķis, laika logs – laiks, kurā kvota pilnībā atjaunojas; sesijai tas iruser, bez akreditācijas datiem –ip);minute,dayunmonthir organizācijas kvotas kalendārajai minūtei, dienai un mēnesim pēc UTC.RateLimitCik atlicis no katra
RateLimit-Policylimita:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitStingrākā
RateLimit-Policyieraksta limits (tā, kurā atlicis vismazāk pieprasījumu).X-RateLimit-RemainingAtlikušo pieprasījumu skaits stingrākā limita ietvaros.
X-RateLimit-ResetSekundes līdz stingrākā limita atiestatīšanai.
Idempotency-Replayedtruenozīmē, ka atbilde ir atkārtota no šaiIdempotency-Keysaglabātās atbildes: operācija netika izpildīta vēlreiz.
application/json
idstringobligātsAugšupielādes ID (
upl_un 32 heksadecimālas rakstzīmes).filenamestringobligātsFaila nosaukums (bez mapēm).
content_typestringobligātsDeklarētais satura tips; tukšs, ja nav deklarēts.
sizeinteger (int64)obligātsFaila izmērs baitos.
sha256string | nullobligātsFaila SHA-256, kas deklarēts izveides laikā vai ar
complete;null, ja vēl nav zināms.part_sizeinteger (int64)obligātsKatras daļas izmērs, izņemot pēdējo (no 5 līdz 100 MiB).
part_countintegerobligātsDaļu skaits.
≥ 1, ≤ 1000
parts_receivedintegerobligātsSaņemto daļu skaits.
≥ 0
Saņemtās daļas pēc numura (atbildē uz
POST /v1/uploads– tukšs).reject_reasonstring | nullobligātsNoraidīšanas iemesls (
rejected):checksum_mismatch,type_mismatch,unsupported_format,infected,scan_unavailable,unsafe_content. Uzskaitījums var paplašināties;null, ja nav noraidīts.reject_detailsobject | nullobligātsNoraidīšanas informācija (paplašinājums, deklarētais un noteiktais formāts, kontrolsummas);
null, ja nav noraidīts.created_atstring (date-time)obligātsKad augšupielāde izveidota.
expires_atstring (date-time)obligātsTermiņš, līdz kuram augšupielāde jāpabeidz un, kad tā ir gatava, jāizmanto.
completed_atstring (date-time) | nullobligātsKad pārbaude beidzās (
readyvairejected).consumed_atstring (date-time) | nullobligātsKad augšupielāde izmantota (kartītei, arhīvam vai importam).
401Nav nosūtīti akreditācijas dati (ne sesijas sīkdatne, ne API atslēga), vai atslēga nav atrasta.
Atbildes galvenes
RateLimit-PolicySpēkā esošie limiti IETF dokumenta projekta
draft-ietf-httpapi-ratelimit-headersformātā: ar komatiem atdalīti elementi"<name>";q=<quota>;w=<window in seconds>.keyir API atslēgas pieprasījumu biežums (kvota ir īslaicīgais pīķis, laika logs – laiks, kurā kvota pilnībā atjaunojas; sesijai tas iruser, bez akreditācijas datiem –ip);minute,dayunmonthir organizācijas kvotas kalendārajai minūtei, dienai un mēnesim pēc UTC.RateLimitCik atlicis no katra
RateLimit-Policylimita:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitStingrākā
RateLimit-Policyieraksta limits (tā, kurā atlicis vismazāk pieprasījumu).X-RateLimit-RemainingAtlikušo pieprasījumu skaits stingrākā limita ietvaros.
X-RateLimit-ResetSekundes līdz stingrākā limita atiestatīšanai.
application/json
403Darbība nav atļauta: loma nav pietiekama, nav piekļuves kolekcijai vai kartītei, pieprasījums izpildās režīmā „View as“ vai organizācija ir apturēta vai dzēsta (`detail` ir objekts ar `code: org_suspended | org_deleted`).
Atbildes galvenes
RateLimit-PolicySpēkā esošie limiti IETF dokumenta projekta
draft-ietf-httpapi-ratelimit-headersformātā: ar komatiem atdalīti elementi"<name>";q=<quota>;w=<window in seconds>.keyir API atslēgas pieprasījumu biežums (kvota ir īslaicīgais pīķis, laika logs – laiks, kurā kvota pilnībā atjaunojas; sesijai tas iruser, bez akreditācijas datiem –ip);minute,dayunmonthir organizācijas kvotas kalendārajai minūtei, dienai un mēnesim pēc UTC.RateLimitCik atlicis no katra
RateLimit-Policylimita:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitStingrākā
RateLimit-Policyieraksta limits (tā, kurā atlicis vismazāk pieprasījumu).X-RateLimit-RemainingAtlikušo pieprasījumu skaits stingrākā limita ietvaros.
X-RateLimit-ResetSekundes līdz stingrākā limita atiestatīšanai.
application/json
404Objekts neeksistē vai jums nav pieejams. API neapstiprina, ka ierobežotas piekļuves objekts eksistē.
Atbildes galvenes
RateLimit-PolicySpēkā esošie limiti IETF dokumenta projekta
draft-ietf-httpapi-ratelimit-headersformātā: ar komatiem atdalīti elementi"<name>";q=<quota>;w=<window in seconds>.keyir API atslēgas pieprasījumu biežums (kvota ir īslaicīgais pīķis, laika logs – laiks, kurā kvota pilnībā atjaunojas; sesijai tas iruser, bez akreditācijas datiem –ip);minute,dayunmonthir organizācijas kvotas kalendārajai minūtei, dienai un mēnesim pēc UTC.RateLimitCik atlicis no katra
RateLimit-Policylimita:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitStingrākā
RateLimit-Policyieraksta limits (tā, kurā atlicis vismazāk pieprasījumu).X-RateLimit-RemainingAtlikušo pieprasījumu skaits stingrākā limita ietvaros.
X-RateLimit-ResetSekundes līdz stingrākā limita atiestatīšanai.
application/json
409Objekta stāvoklis neļauj veikt darbību, piemēram, dublikāts, notiekoša indeksēšana vai jau apstrādāts darbs.
Atbildes galvenes
RateLimit-PolicySpēkā esošie limiti IETF dokumenta projekta
draft-ietf-httpapi-ratelimit-headersformātā: ar komatiem atdalīti elementi"<name>";q=<quota>;w=<window in seconds>.keyir API atslēgas pieprasījumu biežums (kvota ir īslaicīgais pīķis, laika logs – laiks, kurā kvota pilnībā atjaunojas; sesijai tas iruser, bez akreditācijas datiem –ip);minute,dayunmonthir organizācijas kvotas kalendārajai minūtei, dienai un mēnesim pēc UTC.RateLimitCik atlicis no katra
RateLimit-Policylimita:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitStingrākā
RateLimit-Policyieraksta limits (tā, kurā atlicis vismazāk pieprasījumu).X-RateLimit-RemainingAtlikušo pieprasījumu skaits stingrākā limita ietvaros.
X-RateLimit-ResetSekundes līdz stingrākā limita atiestatīšanai.
application/json
410Objekts eksistēja, bet vairs nav pieejams: saite ir izmantota vai tās derīguma termiņš ir beidzies, vai fails ir dzēsts glabāšanas perioda beigās.
Atbildes galvenes
RateLimit-PolicySpēkā esošie limiti IETF dokumenta projekta
draft-ietf-httpapi-ratelimit-headersformātā: ar komatiem atdalīti elementi"<name>";q=<quota>;w=<window in seconds>.keyir API atslēgas pieprasījumu biežums (kvota ir īslaicīgais pīķis, laika logs – laiks, kurā kvota pilnībā atjaunojas; sesijai tas iruser, bez akreditācijas datiem –ip);minute,dayunmonthir organizācijas kvotas kalendārajai minūtei, dienai un mēnesim pēc UTC.RateLimitCik atlicis no katra
RateLimit-Policylimita:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitStingrākā
RateLimit-Policyieraksta limits (tā, kurā atlicis vismazāk pieprasījumu).X-RateLimit-RemainingAtlikušo pieprasījumu skaits stingrākā limita ietvaros.
X-RateLimit-ResetSekundes līdz stingrākā limita atiestatīšanai.
application/json
422Validācijas kļūda: saturs vai parametri neatbilst shēmai (`detail` ir validācijas kļūdu saraksts), vai parametra vērtība ir ārpus pieļaujamā diapazona (`detail` ir ziņojums).
Atbildes galvenes
RateLimit-PolicySpēkā esošie limiti IETF dokumenta projekta
draft-ietf-httpapi-ratelimit-headersformātā: ar komatiem atdalīti elementi"<name>";q=<quota>;w=<window in seconds>.keyir API atslēgas pieprasījumu biežums (kvota ir īslaicīgais pīķis, laika logs – laiks, kurā kvota pilnībā atjaunojas; sesijai tas iruser, bez akreditācijas datiem –ip);minute,dayunmonthir organizācijas kvotas kalendārajai minūtei, dienai un mēnesim pēc UTC.RateLimitCik atlicis no katra
RateLimit-Policylimita:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitStingrākā
RateLimit-Policyieraksta limits (tā, kurā atlicis vismazāk pieprasījumu).X-RateLimit-RemainingAtlikušo pieprasījumu skaits stingrākā limita ietvaros.
X-RateLimit-ResetSekundes līdz stingrākā limita atiestatīšanai.
application/json
429Pārāk daudz pieprasījumu (`api.rate_limited`), organizācijas minūtes, dienas vai mēneša kvota ir izlietota (`api.quota_exceeded`; `error.details` satur `quota`, `limit` un `reset_at`), sasniegts organizācijas limits vai atbilžu pakalpojums ir aizņemts (`answers.engine_busy`). Pagaidiet galvenē `Retry-After` norādīto laiku.
Atbildes galvenes
Retry-AfterSekunžu skaits, kas jāpagaida, pirms atkārtojat pieprasījumu.
RateLimit-PolicySpēkā esošie limiti IETF dokumenta projekta
draft-ietf-httpapi-ratelimit-headersformātā: ar komatiem atdalīti elementi"<name>";q=<quota>;w=<window in seconds>.keyir API atslēgas pieprasījumu biežums (kvota ir īslaicīgais pīķis, laika logs – laiks, kurā kvota pilnībā atjaunojas; sesijai tas iruser, bez akreditācijas datiem –ip);minute,dayunmonthir organizācijas kvotas kalendārajai minūtei, dienai un mēnesim pēc UTC.RateLimitCik atlicis no katra
RateLimit-Policylimita:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitStingrākā
RateLimit-Policyieraksta limits (tā, kurā atlicis vismazāk pieprasījumu).X-RateLimit-RemainingAtlikušo pieprasījumu skaits stingrākā limita ietvaros.
X-RateLimit-ResetSekundes līdz stingrākā limita atiestatīšanai.
application/json
Kļūdu kodi
Kodi, ko šī operācija var atgriezt laukā error.code papildus vispārīgajiem kodiem, kas iespējami jebkuram pieprasījumam.
Droši atkārtojumi
Ar katru POST un PATCH pieprasījumu nosūtiet galveni Idempotency-Key (piemēram, UUID). Atkārtots pieprasījums ar to pašu atslēgu 24 stundu laikā atgriež saglabāto atbildi, nevis izpilda pieprasījumu vēlreiz.
Pieprasījumu biežuma limiti
Atbildēs ir galvenes RateLimit un RateLimit-Policy, kā arī agrākās X-RateLimit-Limit, X-RateLimit-Remaining un X-RateLimit-Reset. Atbildē 429 ir galvene Retry-After sekundēs: nogaidiet un atkārtojiet pieprasījumu.