Pāriet uz saturu
Sursa Developers

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āts

    Augšupielādes ID (upl_, kam seko 32 heksadecimālas rakstzīmes).

    length ≤ 64

Galvenes parametri

  • Idempotency-Keystring

    Atslē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-Type vai saturu atgriež 409 api.idempotency_mismatch; kamēr pirmais pieprasījums vēl izpildās – 409 api.idempotency_in_progress ar Retry-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

Objekts: UploadComplete

  • sha256stringobligāts

    Visa faila SHA-256.

  • partsarray of UploadPartRef

    Neobligā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-Policy

    Spēkā esošie limiti IETF dokumenta projekta draft-ietf-httpapi-ratelimit-headers formātā: ar komatiem atdalīti elementi "<name>";q=<quota>;w=<window in seconds>. key ir API atslēgas pieprasījumu biežums (kvota ir īslaicīgais pīķis, laika logs – laiks, kurā kvota pilnībā atjaunojas; sesijai tas ir user, bez akreditācijas datiem – ip); minute, day un month ir organizācijas kvotas kalendārajai minūtei, dienai un mēnesim pēc UTC.

  • RateLimit

    Cik atlicis no katra RateLimit-Policy limita: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Stingrākā RateLimit-Policy ieraksta limits (tā, kurā atlicis vismazāk pieprasījumu).

  • X-RateLimit-Remaining

    Atlikušo pieprasījumu skaits stingrākā limita ietvaros.

  • X-RateLimit-Reset

    Sekundes līdz stingrākā limita atiestatīšanai.

  • Idempotency-Replayed

    true nozīmē, ka atbilde ir atkārtota no šai Idempotency-Key saglabātās atbildes: operācija netika izpildīta vēlreiz.

application/json

Objekts: Upload

  • idstringobligāts

    Augšupielādes ID (upl_ un 32 heksadecimālas rakstzīmes).

  • purposeUploadPurposeobligāts
  • filenamestringobligāts

    Faila nosaukums (bez mapēm).

  • content_typestringobligāts

    Deklarētais satura tips; tukšs, ja nav deklarēts.

  • sizeinteger (int64)obligāts

    Faila izmērs baitos.

  • sha256string | nullobligāts

    Faila SHA-256, kas deklarēts izveides laikā vai ar complete; null, ja vēl nav zināms.

  • statusUploadStatusobligāts
  • part_sizeinteger (int64)obligāts

    Katras daļas izmērs, izņemot pēdējo (no 5 līdz 100 MiB).

  • part_countintegerobligāts

    Daļu skaits.

    ≥ 1, ≤ 1000

  • parts_receivedintegerobligāts

    Saņemto daļu skaits.

    ≥ 0

  • partsarray of UploadPartobligāts

    Saņemtās daļas pēc numura (atbildē uz POST /v1/uploads – tukšs).

  • reject_reasonstring | nullobligāts

    Noraidīš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āts

    Noraidīšanas informācija (paplašinājums, deklarētais un noteiktais formāts, kontrolsummas); null, ja nav noraidīts.

  • created_atstring (date-time)obligāts

    Kad augšupielāde izveidota.

  • expires_atstring (date-time)obligāts

    Termiņš, līdz kuram augšupielāde jāpabeidz un, kad tā ir gatava, jāizmanto.

  • completed_atstring (date-time) | nullobligāts

    Kad pārbaude beidzās (ready vai rejected).

  • consumed_atstring (date-time) | nullobligāts

    Kad augšupielāde izmantota (kartītei, arhīvam vai importam).

202Fails vēl tiek pārbaudīts (`processing`).

Atbildes galvenes

  • RateLimit-Policy

    Spēkā esošie limiti IETF dokumenta projekta draft-ietf-httpapi-ratelimit-headers formātā: ar komatiem atdalīti elementi "<name>";q=<quota>;w=<window in seconds>. key ir API atslēgas pieprasījumu biežums (kvota ir īslaicīgais pīķis, laika logs – laiks, kurā kvota pilnībā atjaunojas; sesijai tas ir user, bez akreditācijas datiem – ip); minute, day un month ir organizācijas kvotas kalendārajai minūtei, dienai un mēnesim pēc UTC.

  • RateLimit

    Cik atlicis no katra RateLimit-Policy limita: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Stingrākā RateLimit-Policy ieraksta limits (tā, kurā atlicis vismazāk pieprasījumu).

  • X-RateLimit-Remaining

    Atlikušo pieprasījumu skaits stingrākā limita ietvaros.

  • X-RateLimit-Reset

    Sekundes līdz stingrākā limita atiestatīšanai.

  • Idempotency-Replayed

    true nozīmē, ka atbilde ir atkārtota no šai Idempotency-Key saglabātās atbildes: operācija netika izpildīta vēlreiz.

application/json

Objekts: Upload

  • idstringobligāts

    Augšupielādes ID (upl_ un 32 heksadecimālas rakstzīmes).

  • purposeUploadPurposeobligāts
  • filenamestringobligāts

    Faila nosaukums (bez mapēm).

  • content_typestringobligāts

    Deklarētais satura tips; tukšs, ja nav deklarēts.

  • sizeinteger (int64)obligāts

    Faila izmērs baitos.

  • sha256string | nullobligāts

    Faila SHA-256, kas deklarēts izveides laikā vai ar complete; null, ja vēl nav zināms.

  • statusUploadStatusobligāts
  • part_sizeinteger (int64)obligāts

    Katras daļas izmērs, izņemot pēdējo (no 5 līdz 100 MiB).

  • part_countintegerobligāts

    Daļu skaits.

    ≥ 1, ≤ 1000

  • parts_receivedintegerobligāts

    Saņemto daļu skaits.

    ≥ 0

  • partsarray of UploadPartobligāts

    Saņemtās daļas pēc numura (atbildē uz POST /v1/uploads – tukšs).

  • reject_reasonstring | nullobligāts

    Noraidīš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āts

    Noraidīšanas informācija (paplašinājums, deklarētais un noteiktais formāts, kontrolsummas); null, ja nav noraidīts.

  • created_atstring (date-time)obligāts

    Kad augšupielāde izveidota.

  • expires_atstring (date-time)obligāts

    Termiņš, līdz kuram augšupielāde jāpabeidz un, kad tā ir gatava, jāizmanto.

  • completed_atstring (date-time) | nullobligāts

    Kad pārbaude beidzās (ready vai rejected).

  • consumed_atstring (date-time) | nullobligāts

    Kad 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-Policy

    Spēkā esošie limiti IETF dokumenta projekta draft-ietf-httpapi-ratelimit-headers formātā: ar komatiem atdalīti elementi "<name>";q=<quota>;w=<window in seconds>. key ir API atslēgas pieprasījumu biežums (kvota ir īslaicīgais pīķis, laika logs – laiks, kurā kvota pilnībā atjaunojas; sesijai tas ir user, bez akreditācijas datiem – ip); minute, day un month ir organizācijas kvotas kalendārajai minūtei, dienai un mēnesim pēc UTC.

  • RateLimit

    Cik atlicis no katra RateLimit-Policy limita: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Stingrākā RateLimit-Policy ieraksta limits (tā, kurā atlicis vismazāk pieprasījumu).

  • X-RateLimit-Remaining

    Atlikušo pieprasījumu skaits stingrākā limita ietvaros.

  • X-RateLimit-Reset

    Sekundes līdz stingrākā limita atiestatīšanai.

application/json

Objekts: Error

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-Policy

    Spēkā esošie limiti IETF dokumenta projekta draft-ietf-httpapi-ratelimit-headers formātā: ar komatiem atdalīti elementi "<name>";q=<quota>;w=<window in seconds>. key ir API atslēgas pieprasījumu biežums (kvota ir īslaicīgais pīķis, laika logs – laiks, kurā kvota pilnībā atjaunojas; sesijai tas ir user, bez akreditācijas datiem – ip); minute, day un month ir organizācijas kvotas kalendārajai minūtei, dienai un mēnesim pēc UTC.

  • RateLimit

    Cik atlicis no katra RateLimit-Policy limita: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Stingrākā RateLimit-Policy ieraksta limits (tā, kurā atlicis vismazāk pieprasījumu).

  • X-RateLimit-Remaining

    Atlikušo pieprasījumu skaits stingrākā limita ietvaros.

  • X-RateLimit-Reset

    Sekundes līdz stingrākā limita atiestatīšanai.

application/json

Objekts: Error

404Objekts neeksistē vai jums nav pieejams. API neapstiprina, ka ierobežotas piekļuves objekts eksistē.

Atbildes galvenes

  • RateLimit-Policy

    Spēkā esošie limiti IETF dokumenta projekta draft-ietf-httpapi-ratelimit-headers formātā: ar komatiem atdalīti elementi "<name>";q=<quota>;w=<window in seconds>. key ir API atslēgas pieprasījumu biežums (kvota ir īslaicīgais pīķis, laika logs – laiks, kurā kvota pilnībā atjaunojas; sesijai tas ir user, bez akreditācijas datiem – ip); minute, day un month ir organizācijas kvotas kalendārajai minūtei, dienai un mēnesim pēc UTC.

  • RateLimit

    Cik atlicis no katra RateLimit-Policy limita: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Stingrākā RateLimit-Policy ieraksta limits (tā, kurā atlicis vismazāk pieprasījumu).

  • X-RateLimit-Remaining

    Atlikušo pieprasījumu skaits stingrākā limita ietvaros.

  • X-RateLimit-Reset

    Sekundes līdz stingrākā limita atiestatīšanai.

application/json

Objekts: Error

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-Policy

    Spēkā esošie limiti IETF dokumenta projekta draft-ietf-httpapi-ratelimit-headers formātā: ar komatiem atdalīti elementi "<name>";q=<quota>;w=<window in seconds>. key ir API atslēgas pieprasījumu biežums (kvota ir īslaicīgais pīķis, laika logs – laiks, kurā kvota pilnībā atjaunojas; sesijai tas ir user, bez akreditācijas datiem – ip); minute, day un month ir organizācijas kvotas kalendārajai minūtei, dienai un mēnesim pēc UTC.

  • RateLimit

    Cik atlicis no katra RateLimit-Policy limita: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Stingrākā RateLimit-Policy ieraksta limits (tā, kurā atlicis vismazāk pieprasījumu).

  • X-RateLimit-Remaining

    Atlikušo pieprasījumu skaits stingrākā limita ietvaros.

  • X-RateLimit-Reset

    Sekundes līdz stingrākā limita atiestatīšanai.

application/json

Objekts: Error

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-Policy

    Spēkā esošie limiti IETF dokumenta projekta draft-ietf-httpapi-ratelimit-headers formātā: ar komatiem atdalīti elementi "<name>";q=<quota>;w=<window in seconds>. key ir API atslēgas pieprasījumu biežums (kvota ir īslaicīgais pīķis, laika logs – laiks, kurā kvota pilnībā atjaunojas; sesijai tas ir user, bez akreditācijas datiem – ip); minute, day un month ir organizācijas kvotas kalendārajai minūtei, dienai un mēnesim pēc UTC.

  • RateLimit

    Cik atlicis no katra RateLimit-Policy limita: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Stingrākā RateLimit-Policy ieraksta limits (tā, kurā atlicis vismazāk pieprasījumu).

  • X-RateLimit-Remaining

    Atlikušo pieprasījumu skaits stingrākā limita ietvaros.

  • X-RateLimit-Reset

    Sekundes līdz stingrākā limita atiestatīšanai.

application/json

Objekts: Error

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-Policy

    Spēkā esošie limiti IETF dokumenta projekta draft-ietf-httpapi-ratelimit-headers formātā: ar komatiem atdalīti elementi "<name>";q=<quota>;w=<window in seconds>. key ir API atslēgas pieprasījumu biežums (kvota ir īslaicīgais pīķis, laika logs – laiks, kurā kvota pilnībā atjaunojas; sesijai tas ir user, bez akreditācijas datiem – ip); minute, day un month ir organizācijas kvotas kalendārajai minūtei, dienai un mēnesim pēc UTC.

  • RateLimit

    Cik atlicis no katra RateLimit-Policy limita: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Stingrākā RateLimit-Policy ieraksta limits (tā, kurā atlicis vismazāk pieprasījumu).

  • X-RateLimit-Remaining

    Atlikušo pieprasījumu skaits stingrākā limita ietvaros.

  • X-RateLimit-Reset

    Sekundes līdz stingrākā limita atiestatīšanai.

application/json

Objekts: Error

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-After

    Sekunžu skaits, kas jāpagaida, pirms atkārtojat pieprasījumu.

  • RateLimit-Policy

    Spēkā esošie limiti IETF dokumenta projekta draft-ietf-httpapi-ratelimit-headers formātā: ar komatiem atdalīti elementi "<name>";q=<quota>;w=<window in seconds>. key ir API atslēgas pieprasījumu biežums (kvota ir īslaicīgais pīķis, laika logs – laiks, kurā kvota pilnībā atjaunojas; sesijai tas ir user, bez akreditācijas datiem – ip); minute, day un month ir organizācijas kvotas kalendārajai minūtei, dienai un mēnesim pēc UTC.

  • RateLimit

    Cik atlicis no katra RateLimit-Policy limita: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Stingrākā RateLimit-Policy ieraksta limits (tā, kurā atlicis vismazāk pieprasījumu).

  • X-RateLimit-Remaining

    Atlikušo pieprasījumu skaits stingrākā limita ietvaros.

  • X-RateLimit-Reset

    Sekundes līdz stingrākā limita atiestatīšanai.

application/json

Objekts: Error

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.

← uploads · API rokasgrāmata