POST/v1/uploads/{upload_id}/complete
Feltöltés befejezése
complete_upload
Amikor minden rész beérkezett, a Sursa összeállítja a fájlt, összeveti a teljes fájl SHA-256 értékét a törzsben megadott sha256 értékkel, és ugyanazokat az ellenőrzéseket futtatja, mint az egykéréses feltöltésnél: a formátumot a tartalom aláírása alapján, valamint víruskeresést. Az eredmény ready, vagy rejected a reject_reason mezővel (checksum_mismatch, type_mismatch, unsupported_format, infected, scan_unavailable, unsafe_content). A formátum- vagy víruskeresési ellenőrzés minden elutasítása file.rejected bejegyzésként kerül az auditnaplóba.
A 200 válasz azt jelenti, hogy az eredmény elkészült; a 202 azt, hogy a fájl ellenőrzése még tart (processing), és az eredmény a GET /v1/uploads/{upload_id} hívással kérhető le. Ha az állapot visszavált pending értékre (az ellenőrzést egy API-példány újraindulása megszakította), küldd el újra a complete kérést. A complete megismétlése az eredmény után ugyanazt az eredményt adja vissza. Hiányzó részek esetén a válasz 409 uploads.incomplete (details.missing). Ha a sha256 eltér a létrehozáskor megadottól, vagy egy parts[].etag eltér egy beérkezett részétől, a válasz 422 uploads.checksum_mismatch. A kész, de fel nem használt feltöltés 24 óráig él. Az 1.62.0 verzióban jelent meg.
Hitelesítés
Küldj egy API-kulcsot az Authorization fejlécben: Authorization: Bearer <kulcs>.
Útvonal-paraméterek
upload_idstringkötelezőA feltöltés azonosítója (
upl_, majd 32 hexadecimális karakter).length ≤ 64
Fejlécparaméterek
Idempotency-KeystringKulcs egy írási kérés biztonságos megismétléséhez: 1–255 nyomtatható ASCII-karakter; logikai műveletenként egy UUID v4 ajánlott. Ha 24 órán belül ugyanazzal a kulccsal ismétled meg a kérést, a művelet nem fut le újra: a mentett választ kapod vissza (állapot, fejlécek és törzs) az
Idempotency-Replayed: truefejléccel. Ugyanaz a kulcs más metódussal, útvonallal,Content-Typeértékkel vagy törzzsel409 api.idempotency_mismatchválaszt ad; amíg az első kérés még fut, a válasz409 api.idempotency_in_progress,Retry-After: 1fejléccel. 5xx vagy 429 válasz után a kulcs felszabadul, és a megismételt kérés újra lefuttatja a műveletet. A kulcs a szervezethez és a hívóhoz (API-kulcs, felhasználó vagy egyéni forrás forráskulcsa) kötődik.length ≥ 1, length ≤ 255
Kéréstörzs
application/json
sha256stringkötelezőA teljes fájl SHA-256 kivonata.
partsarray of UploadPartRefNem kötelező részellenőrzés: az egyes részek ETag-je, ahogy a
PUT …/parts/{n}visszaadta.items ≤ 1000
Válaszok
200Az eredmény elkészült: `ready` vagy `rejected`.
Válaszfejlécek
RateLimit-PolicyAz érvényben lévő korlátok az IETF
draft-ietf-httpapi-ratelimit-headerstervezetének formátumában: vesszővel elválasztott"<name>";q=<quota>;w=<window in seconds>elemek. Akeyaz API-kulcs kérésgyakorisága (a kvóta a csúcskeret, az időablak a teljes visszatöltődés ideje; munkamenetnéluser, hitelesítő adatok nélkülip); aminute, adayés amontha szervezetnek az UTC szerinti naptári percre, napra és hónapra szóló kvótája.RateLimitMennyi maradt a
RateLimit-Policyegyes korlátaiból:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitA
RateLimit-Policylegszigorúbb elemének korlátja (amelyből a legkevesebb kérés maradt).X-RateLimit-RemainingA legszigorúbb korlát szerint még hátralévő kérések száma.
X-RateLimit-ResetA legszigorúbb korlát visszaállásáig hátralévő másodpercek.
Idempotency-ReplayedA
trueazt jelenti, hogy a válasz az ehhez azIdempotency-Keykulcshoz mentett válasz megismétlése: a művelet nem futott le újra.
application/json
idstringkötelezőA feltöltés azonosítója (
upl_, majd 32 hexadecimális karakter).filenamestringkötelezőA fájl neve (mappák nélkül).
content_typestringkötelezőA megadott tartalomtípus; üres, ha nem adták meg.
sizeinteger (int64)kötelezőA fájl mérete bájtban.
sha256string | nullkötelezőA fájl SHA-256 kivonata, amelyet a létrehozáskor vagy a
completehívásakor adtak meg;null, ha még nem ismert.part_sizeinteger (int64)kötelezőAz egyes részek mérete az utolsó kivételével (5 és 100 MiB között).
part_countintegerkötelezőA részek száma.
≥ 1, ≤ 1000
parts_receivedintegerkötelezőA beérkezett részek száma.
≥ 0
A beérkezett részek sorszám szerint (a
POST /v1/uploadsválaszában üres).reject_reasonstring | nullkötelezőAz elutasítás oka (
rejected):checksum_mismatch,type_mismatch,unsupported_format,infected,scan_unavailable,unsafe_content. A felsorolás bővülhet;null, ha a feltöltés nincs elutasítva.reject_detailsobject | nullkötelezőAz elutasítás részletei (a kiterjesztés, a megadott és a felismert formátum, az ellenőrzőösszegek);
null, ha a feltöltés nincs elutasítva.created_atstring (date-time)kötelezőA feltöltés létrehozásának időpontja.
expires_atstring (date-time)kötelezőHatáridő a feltöltés befejezésére, és ha már kész, a felhasználására is.
completed_atstring (date-time) | nullkötelezőAz ellenőrzés befejezésének időpontja (
readyvagyrejected).consumed_atstring (date-time) | nullkötelezőA feltöltés felhasználásának időpontja (kártya, archívum vagy importálás által).
202A fájl ellenőrzése még tart (`processing`).
Válaszfejlécek
RateLimit-PolicyAz érvényben lévő korlátok az IETF
draft-ietf-httpapi-ratelimit-headerstervezetének formátumában: vesszővel elválasztott"<name>";q=<quota>;w=<window in seconds>elemek. Akeyaz API-kulcs kérésgyakorisága (a kvóta a csúcskeret, az időablak a teljes visszatöltődés ideje; munkamenetnéluser, hitelesítő adatok nélkülip); aminute, adayés amontha szervezetnek az UTC szerinti naptári percre, napra és hónapra szóló kvótája.RateLimitMennyi maradt a
RateLimit-Policyegyes korlátaiból:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitA
RateLimit-Policylegszigorúbb elemének korlátja (amelyből a legkevesebb kérés maradt).X-RateLimit-RemainingA legszigorúbb korlát szerint még hátralévő kérések száma.
X-RateLimit-ResetA legszigorúbb korlát visszaállásáig hátralévő másodpercek.
Idempotency-ReplayedA
trueazt jelenti, hogy a válasz az ehhez azIdempotency-Keykulcshoz mentett válasz megismétlése: a művelet nem futott le újra.
application/json
idstringkötelezőA feltöltés azonosítója (
upl_, majd 32 hexadecimális karakter).filenamestringkötelezőA fájl neve (mappák nélkül).
content_typestringkötelezőA megadott tartalomtípus; üres, ha nem adták meg.
sizeinteger (int64)kötelezőA fájl mérete bájtban.
sha256string | nullkötelezőA fájl SHA-256 kivonata, amelyet a létrehozáskor vagy a
completehívásakor adtak meg;null, ha még nem ismert.part_sizeinteger (int64)kötelezőAz egyes részek mérete az utolsó kivételével (5 és 100 MiB között).
part_countintegerkötelezőA részek száma.
≥ 1, ≤ 1000
parts_receivedintegerkötelezőA beérkezett részek száma.
≥ 0
A beérkezett részek sorszám szerint (a
POST /v1/uploadsválaszában üres).reject_reasonstring | nullkötelezőAz elutasítás oka (
rejected):checksum_mismatch,type_mismatch,unsupported_format,infected,scan_unavailable,unsafe_content. A felsorolás bővülhet;null, ha a feltöltés nincs elutasítva.reject_detailsobject | nullkötelezőAz elutasítás részletei (a kiterjesztés, a megadott és a felismert formátum, az ellenőrzőösszegek);
null, ha a feltöltés nincs elutasítva.created_atstring (date-time)kötelezőA feltöltés létrehozásának időpontja.
expires_atstring (date-time)kötelezőHatáridő a feltöltés befejezésére, és ha már kész, a felhasználására is.
completed_atstring (date-time) | nullkötelezőAz ellenőrzés befejezésének időpontja (
readyvagyrejected).consumed_atstring (date-time) | nullkötelezőA feltöltés felhasználásának időpontja (kártya, archívum vagy importálás által).
401Nem érkeztek hitelesítő adatok (sem munkamenet-süti, sem API-kulcs), vagy a kulcs nem található.
Válaszfejlécek
RateLimit-PolicyAz érvényben lévő korlátok az IETF
draft-ietf-httpapi-ratelimit-headerstervezetének formátumában: vesszővel elválasztott"<name>";q=<quota>;w=<window in seconds>elemek. Akeyaz API-kulcs kérésgyakorisága (a kvóta a csúcskeret, az időablak a teljes visszatöltődés ideje; munkamenetnéluser, hitelesítő adatok nélkülip); aminute, adayés amontha szervezetnek az UTC szerinti naptári percre, napra és hónapra szóló kvótája.RateLimitMennyi maradt a
RateLimit-Policyegyes korlátaiból:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitA
RateLimit-Policylegszigorúbb elemének korlátja (amelyből a legkevesebb kérés maradt).X-RateLimit-RemainingA legszigorúbb korlát szerint még hátralévő kérések száma.
X-RateLimit-ResetA legszigorúbb korlát visszaállásáig hátralévő másodpercek.
application/json
403A művelet nem engedélyezett: a szerepkör nem elegendő, nincs hozzáférés a gyűjteményhez vagy a kártyához, a kérés „View as” módban fut, vagy a szervezetet felfüggesztették vagy törölték (a `detail` egy objektum, `code: org_suspended | org_deleted` mezővel).
Válaszfejlécek
RateLimit-PolicyAz érvényben lévő korlátok az IETF
draft-ietf-httpapi-ratelimit-headerstervezetének formátumában: vesszővel elválasztott"<name>";q=<quota>;w=<window in seconds>elemek. Akeyaz API-kulcs kérésgyakorisága (a kvóta a csúcskeret, az időablak a teljes visszatöltődés ideje; munkamenetnéluser, hitelesítő adatok nélkülip); aminute, adayés amontha szervezetnek az UTC szerinti naptári percre, napra és hónapra szóló kvótája.RateLimitMennyi maradt a
RateLimit-Policyegyes korlátaiból:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitA
RateLimit-Policylegszigorúbb elemének korlátja (amelyből a legkevesebb kérés maradt).X-RateLimit-RemainingA legszigorúbb korlát szerint még hátralévő kérések száma.
X-RateLimit-ResetA legszigorúbb korlát visszaállásáig hátralévő másodpercek.
application/json
404Az objektum nem létezik, vagy nem érhető el számodra. Az API nem erősíti meg, hogy egy korlátozott hozzáférésű objektum létezik.
Válaszfejlécek
RateLimit-PolicyAz érvényben lévő korlátok az IETF
draft-ietf-httpapi-ratelimit-headerstervezetének formátumában: vesszővel elválasztott"<name>";q=<quota>;w=<window in seconds>elemek. Akeyaz API-kulcs kérésgyakorisága (a kvóta a csúcskeret, az időablak a teljes visszatöltődés ideje; munkamenetnéluser, hitelesítő adatok nélkülip); aminute, adayés amontha szervezetnek az UTC szerinti naptári percre, napra és hónapra szóló kvótája.RateLimitMennyi maradt a
RateLimit-Policyegyes korlátaiból:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitA
RateLimit-Policylegszigorúbb elemének korlátja (amelyből a legkevesebb kérés maradt).X-RateLimit-RemainingA legszigorúbb korlát szerint még hátralévő kérések száma.
X-RateLimit-ResetA legszigorúbb korlát visszaállásáig hátralévő másodpercek.
application/json
409Az objektum állapota nem teszi lehetővé a műveletet, például ismétlődés, folyamatban lévő indexelés vagy már feldolgozott feladat miatt.
Válaszfejlécek
RateLimit-PolicyAz érvényben lévő korlátok az IETF
draft-ietf-httpapi-ratelimit-headerstervezetének formátumában: vesszővel elválasztott"<name>";q=<quota>;w=<window in seconds>elemek. Akeyaz API-kulcs kérésgyakorisága (a kvóta a csúcskeret, az időablak a teljes visszatöltődés ideje; munkamenetnéluser, hitelesítő adatok nélkülip); aminute, adayés amontha szervezetnek az UTC szerinti naptári percre, napra és hónapra szóló kvótája.RateLimitMennyi maradt a
RateLimit-Policyegyes korlátaiból:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitA
RateLimit-Policylegszigorúbb elemének korlátja (amelyből a legkevesebb kérés maradt).X-RateLimit-RemainingA legszigorúbb korlát szerint még hátralévő kérések száma.
X-RateLimit-ResetA legszigorúbb korlát visszaállásáig hátralévő másodpercek.
application/json
410Az objektum létezett, de már nem érhető el: a hivatkozást már felhasználták, vagy lejárt, illetve a fájlt a megőrzési idő végén törölték.
Válaszfejlécek
RateLimit-PolicyAz érvényben lévő korlátok az IETF
draft-ietf-httpapi-ratelimit-headerstervezetének formátumában: vesszővel elválasztott"<name>";q=<quota>;w=<window in seconds>elemek. Akeyaz API-kulcs kérésgyakorisága (a kvóta a csúcskeret, az időablak a teljes visszatöltődés ideje; munkamenetnéluser, hitelesítő adatok nélkülip); aminute, adayés amontha szervezetnek az UTC szerinti naptári percre, napra és hónapra szóló kvótája.RateLimitMennyi maradt a
RateLimit-Policyegyes korlátaiból:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitA
RateLimit-Policylegszigorúbb elemének korlátja (amelyből a legkevesebb kérés maradt).X-RateLimit-RemainingA legszigorúbb korlát szerint még hátralévő kérések száma.
X-RateLimit-ResetA legszigorúbb korlát visszaállásáig hátralévő másodpercek.
application/json
422Érvényesítési hiba: a törzs vagy a paraméterek nem felelnek meg a sémának (a `detail` az érvényesítési hibák listája), vagy egy paraméter értéke kívül esik a megengedett tartományon (a `detail` egy üzenet).
Válaszfejlécek
RateLimit-PolicyAz érvényben lévő korlátok az IETF
draft-ietf-httpapi-ratelimit-headerstervezetének formátumában: vesszővel elválasztott"<name>";q=<quota>;w=<window in seconds>elemek. Akeyaz API-kulcs kérésgyakorisága (a kvóta a csúcskeret, az időablak a teljes visszatöltődés ideje; munkamenetnéluser, hitelesítő adatok nélkülip); aminute, adayés amontha szervezetnek az UTC szerinti naptári percre, napra és hónapra szóló kvótája.RateLimitMennyi maradt a
RateLimit-Policyegyes korlátaiból:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitA
RateLimit-Policylegszigorúbb elemének korlátja (amelyből a legkevesebb kérés maradt).X-RateLimit-RemainingA legszigorúbb korlát szerint még hátralévő kérések száma.
X-RateLimit-ResetA legszigorúbb korlát visszaállásáig hátralévő másodpercek.
application/json
429Túl sok kérés (`api.rate_limited`), elfogyott a szervezet percre, napra vagy hónapra szóló kvótája (`api.quota_exceeded`; az `error.details` a `quota`, a `limit` és a `reset_at` mezőt tartalmazza), a szervezet elérte a korlátját, vagy a válaszszolgáltatás foglalt (`answers.engine_busy`). Várj a `Retry-After` fejlécben megadott ideig.
Válaszfejlécek
Retry-AfterEnnyi másodpercet várj, mielőtt újrapróbálod a kérést.
RateLimit-PolicyAz érvényben lévő korlátok az IETF
draft-ietf-httpapi-ratelimit-headerstervezetének formátumában: vesszővel elválasztott"<name>";q=<quota>;w=<window in seconds>elemek. Akeyaz API-kulcs kérésgyakorisága (a kvóta a csúcskeret, az időablak a teljes visszatöltődés ideje; munkamenetnéluser, hitelesítő adatok nélkülip); aminute, adayés amontha szervezetnek az UTC szerinti naptári percre, napra és hónapra szóló kvótája.RateLimitMennyi maradt a
RateLimit-Policyegyes korlátaiból:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitA
RateLimit-Policylegszigorúbb elemének korlátja (amelyből a legkevesebb kérés maradt).X-RateLimit-RemainingA legszigorúbb korlát szerint még hátralévő kérések száma.
X-RateLimit-ResetA legszigorúbb korlát visszaállásáig hátralévő másodpercek.
application/json
Hibakódok
Azok a kódok, amelyeket ez a végpont hiba esetén az error.code mezőben visszaadhat, a minden kérésre érvényes általános kódokon kívül.
Biztonságos újrapróbálkozás
Minden POST és PATCH kéréssel küldj Idempotency-Key fejlécet (például egy UUID-t). Ha 24 órán belül ugyanazzal a kulccsal megismétled a kérést, a mentett választ kapod vissza, és a kérés nem fut le újra.
Gyakorisági korlátok
A válaszokban ott van a RateLimit és a RateLimit-Policy fejléc, valamint a korábbi X-RateLimit-Limit, X-RateLimit-Remaining és X-RateLimit-Reset fejléc. A 429-es válasz Retry-After fejléce másodpercben adja meg a várakozást: várj, majd próbáld újra.