Skip to content

Files API

Apžvalga

Files API priglobia failus qr3 platformoje ir pateikia stabilią URL nuorodą. QR kodas nukreipia į šį URL adresą – jame esantį failą galite bet kada pakeisti iš naujo nespausdindami kodo.

Bazinis URL: https://qr3.app/v1/files

Pasirinktinai galite susieti failą su kodu naudodami code_id. Tai yra pagrindas kiekvieno kodo nukreipimo puslapiui, kuriame pateikiami visi vieši kodo failai.

Palaikomi tipai tikrinami pagal magiškuosius baitus (magic bytes), o ne pagal failo plėtinį: PDF, PNG, JPEG, WebP, MP4, glTF/GLB, JSON. Failas .pdf, kuris nėra PDF, bus atmestas.

Rolės

OperacijaReikalaujamaGauna 403
Visi GETbet kuri rolė
POST /upload, PUT /:idrašymo rolėviewer
DELETE /:idtrynimo rolėviewer, contributor

Išskirtinė taisyklė taikoma contributor: ši rolė gali kurti ir keisti, bet negali nieko šalinti.

Failo įkėlimas

POST /v1/files/upload

Tikimasi multipart/form-data.

LaukasPrivalomasAprašymas
fileTaipFailas
code_idNeSusieti su kodu (turi priklausyti Workspace)
visibilityNeprivate (numatytasis) arba public
Terminal window
curl -X POST https://qr3.app/v1/files/upload \
-H "Authorization: Bearer qr3_sk_..." \
-F "code_id=qr_a1b2c3d4" \
-F "visibility=public"

Atsakymas (HTTP 201):

{
"data": {
"id": "file_a1b2c3d4",
"code_id": "qr_a1b2c3d4",
"filename": "datenblatt.pdf",
"mime_type": "application/pdf",
"size_bytes": 284913,
"hash_sha256": "9f86d081884c7d65…",
"visibility": "public",
"status": "active",
"created_at": "2026-03-14T12:00:00.000Z",
"download_url": "https://qr3.app/v1/files/file_a1b2c3d4/download",
"public_url": "https://qr3.app/f/file_a1b2c3d4"
},
"meta": { "request_id": "req_abc123" }
}

public_url yra nustatomas tik esant visibility: "public" ir status: "active". Šiam adresui nereikia prisijungimo ir jis tiesiogiai tinka kaip QR kodo tikslinis URL.

Failų sąrašas

GET /v1/files

Užklausa (Query): code_id ir visibility, abu pasirinktiniai. Grąžina aktyvius Workspace failus, naujausius rodant pirmiausia.

Terminal window
curl "https://qr3.app/v1/files?code_id=qr_a1b2c3d4" \
-H "Authorization: Bearer qr3_sk_..."

Atsakymas (HTTP 200):

{
"data": [ { "id": "file_a1b2c3d4", "…": "" } ],
"meta": {
"request_id": "req_abc123",
"file_count": 3,
"total_size_bytes": 812004
}
}

Failo informacijos gavimas

GET /v1/files/:id

Grąžina metaduomenis, įskaitant download_url (ir public_url viešų failų atveju). Prieinama skaityti visoms rolėms.

Failo atsisiuntimas

GET /v1/files/:id/download

Turinys perduodamas srautu (stream) kaip Content-Disposition: attachment su Cache-Control: private, no-store – todėl atsakymas visada yra naujausios būsenos, kitaip nei talpykloje (cache) išsaugotas viešas /f/:id URL.

404 klaida grąžinama dviem atvejais: failas neegzistuoja Workspace (arba yra ištrintas) arba jis egzistuoja, bet trūksta išsaugoto objekto.

Failo pakeitimas

PUT /v1/files/:id

Pakeičia turinį ir išlaiko tą patį id – o kartu ir viešąjį /f/:id bei download_url adresą. Jau atspausdintas QR kodas lieka galioti.

Terminal window
curl -X PUT https://qr3.app/v1/files/file_a1b2c3d4 \
-H "Authorization: Bearer qr3_sk_..." \

visibility, code_id ir created_at išlieka nepakitę; filename, mime_type, size_bytes ir hash_sha256 yra atnaujinami. Plano limitas vienam failui taikomas taip pat, kaip ir įkeliant, o Workspace saugyklos limitas tikrinamas pagal skirtumą. Apribojimas „failų skaičius vienam kodui“ netaikomas, nes naujas failas nėra pridedamas.

Failo trynimas

DELETE /v1/files/:id

Švelnus trynimas (Soft-Delete): failas iškart dingsta iš sąrašo, tampa nepasiekiamas ir – jei yra viešas – nebeplatinamas adresu /f/:id.

Atsakymas (HTTP 200):

{
"data": { "id": "file_a1b2c3d4", "deleted": true },
"meta": { "request_id": "req_abc123" }
}

Limitai

PlanasMaks. vienam failui
Free5 MB
Pro25 MB
Business100 MB
Agency100 MB
Enterprise250 MB

Be to, kiekvienam planui taikomas maksimalus failų skaičius vienam kodui ir bendra Workspace saugyklos talpa. Įkėlimo dažnio limitas (rate limit) yra 100 įkėlimų per valandą vienam Workspace.

Klaidos

StatusasKada
400Nežinomas arba netinkamas failo parašas, negaliojantis multipart turinys (body)
401Nėra arba netinkamas API raktas
403Rolė neturi teisės rašyti arba trinti
404code_id arba failo nėra Workspace; atsisiunčiant taip pat: objekto nėra saugykloje
413Failas didesnis nei plano limitas
422Trūksta failo, netinkama visibility, pasiektas „failų skaičiaus vienam kodui“ limitas, viršytas Workspace saugyklos limitas
429Įkėlimo dažnio limitas (100/valandai/Workspace) arba bendras dažnio limitas (rate limit)

Susiję