Files API
Tölts fel kép-, videó- vagy hangreferencia-fájlokat Rivya API generálási kérésekhez, MIME-ellenőrzésekkel, méretkorlátokkal és duration tokenekkel.
Utoljára ellenőrizve: 2026/05/11
Használd a POST /api/v1/files endpointot referencia média feltöltéséhez olyan modellekhez, amelyek kép-, videó- vagy hangbemenetet igényelnek.
A Files API kizárólag referencia bemenetekhez való. Önmagában nem hoz létre generálási feladatokat. Feltöltés után add át a visszakapott url értéket és metaadatokat a modell params mezőibe, általában a params.referenceMediaItems alatt.
Endpoint
POST https://rivya.ai/api/v1/files
GET https://rivya.ai/api/v1/files/{fileId}Szükséges headerek:
Authorization: Bearer rvya_sk_...
Content-Type: multipart/form-dataAz API-kulcsnak tartalmaznia kell a files:create scope-ot feltöltéshez, és a files:read scope-ot metaadatok lekéréséhez. Az újonnan létrehozott Rivya API-kulcsok alapértelmezés szerint mindkét scope-ot tartalmazzák.
Multipart mezők
| Mező | Típus | Kötelező | Megjegyzések |
|---|---|---|---|
file | binary | igen | A feltöltendő kép-, videó- vagy hangfájl. |
kind | string | igen | Az egyik: image, video vagy audio. |
model | string | nem | Nyilvános modellazonosító. Ha meg van adva, a Rivya ellenőrzi, hogy a modell elfogadja-e ezt a fájltípust. |
client_request_id | string | nem | Saját trace ID, legfeljebb 128 karakter. |
Használd a model mezőt, amikor a fájlt egy konkrét modellhez szánod. Így modell-specifikus MIME- és méretellenőrzést kapsz, mielőtt a rendszer elfogadja a fájlt.
Feltöltési limitek
A Files API ugyanazt a feltöltési szabályzatot használja, mint a Rivya referenciafeltöltései.
Alapértelmezett limitek:
| Típus | Alapértelmezett maximális méret | Gyakori MIME-típusok |
|---|---|---|
image | 10 MB | image/jpeg, image/png, image/webp |
video | 50 MB | video/mp4, video/quicktime, video/webm |
audio | 10 MB | audio/mpeg, audio/mp4, audio/wav, audio/x-wav, audio/aac, audio/ogg |
Egyes modellek eltérő limitekkel rendelkeznek. Például bizonyos referencia-képes modellek nagyobb képeket engednek, bizonyos videóreferencia-modellek pedig a termék edge-safe feltöltési plafonjáig engednek fájlokat. Mindig add át a model mezőt, ha ismered a célmodellt, és olvasd el a Modell API referenciát, mielőtt felhasználói feltöltéseket fogadnál.
A Rivya az észlelt fájlszignatúrát ellenőrzi, nem csak a fájlnév kiterjesztését.
curl példa
curl https://rivya.ai/api/v1/files \
-H "Authorization: Bearer rvya_sk_..." \
-F "file=@./reference.png" \
-F "kind=image" \
-F "model=nano-banana-2" \
-F "client_request_id=asset-123"JavaScript példa
import { readFile } from "node:fs/promises";
const form = new FormData();
const file = new Blob([await readFile("./reference.png")], {
type: "image/png"
});
form.set("file", file, "reference.png");
form.set("kind", "image");
form.set("model", "nano-banana-2");
form.set("client_request_id", "asset-123");
const response = await fetch("https://rivya.ai/api/v1/files", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.RIVYA_API_KEY}`
},
body: form
});
const uploadedFile = await response.json();
console.log(uploadedFile.id, uploadedFile.url);Python példa
import os
import requests
with open("./reference.png", "rb") as file_handle:
response = requests.post(
"https://rivya.ai/api/v1/files",
headers={
"Authorization": f"Bearer {os.environ['RIVYA_API_KEY']}",
},
files={"file": ("reference.png", file_handle, "image/png")},
data={
"kind": "image",
"model": "nano-banana-2",
"client_request_id": "asset-123",
},
timeout=60,
)
uploaded_file = response.json()
print(uploaded_file["id"], uploaded_file["url"])Válasz
{
"id": "file_...",
"object": "file",
"kind": "image",
"file_name": "reference.png",
"mime_type": "image/png",
"size_bytes": 482314,
"url": "https://...",
"duration_seconds": null,
"duration_token": null,
"created_at": "2026-05-11T00:00:00.000Z",
"expires_at": null
}Videó- és hangfeltöltéseknél a duration_seconds kitöltődhet. Ha egy modell duration ellenőrzést igényel, másold a duration_token értéket a kapcsolódó generálási paraméterbe durationToken néven.
Fájlmetaadatok lekérése
Használd a GET /api/v1/files/{fileId} endpointot ugyanahhoz a Rivya-fiókhoz tartozó fájl metaadatainak olvasásához:
curl https://rivya.ai/api/v1/files/file_... \
-H "Authorization: Bearer rvya_sk_..."A válasz ugyanazt a PublicApiFile formát használja, mint a feltöltés. Ha a fájl másik fiókhoz tartozik, vagy már nem érhető el, az API not_found választ ad.
A feltöltés használata generálási params mezőben
Ne küldj felső szintű files mezőt a POST /api/v1/generations kéréshez.
Új integrációknál a feltöltés eredményét a params.referenceMediaItems mezőn keresztül add át:
{
"model": "nano-banana-2",
"prompt": "Restyle this product photo for a clean editorial catalog page",
"params": {
"referenceMediaItems": [
{
"url": "https://...",
"kind": "image",
"name": "reference.png",
"mimeType": "image/png"
}
]
},
"client_request_id": "order-123-preview"
}Videóhoz vagy hanghoz:
{
"url": "https://...",
"kind": "video",
"name": "source.mov",
"mimeType": "video/quicktime",
"durationSeconds": 12.4,
"durationToken": "duration_token_from_files_api"
}Néhány régebbi modellparaméter továbbra is modell-specifikus URL mezőket használ. Ha a Modell API referencia konkrét paramétert dokumentál, kövesd azt a modelloldalt, ne találj ki új mezőt.
Hibák
A Files API ugyanazt a nyilvános hibaborítékot használja, mint a Rivya API többi része:
{
"error": {
"code": "validation_failed",
"message": "The request is invalid.",
"requestId": "req_..."
}
}Gyakori esetek:
| HTTP | Kód | Ok |
|---|---|---|
| 400 | validation_failed | Hiányzó file, nem támogatott kind, nem támogatott MIME-típus, túl nagy fájl, vagy a modell nem fogadja el a kiválasztott típust. |
| 401 | api_key_missing / api_key_invalid | Hiányzó vagy érvénytelen Bearer API-kulcs. |
| 403 | api_scope_denied | A kulcs nem tartalmazza a files:create vagy files:read scope-ot a kért művelethez. |
| 429 | rate_limited | Túl sok fájlfeltöltés történt az aktuális percben. |
| 503 | public_api_disabled | A Public API le van tiltva az aktuális környezetben. |
Biztonsági megjegyzések
Ne tárolj teljes API-kulcsokat böngészőkben, mobilkliensekben, logokban, analitikai eseményekben vagy képernyőképeken.
A feltöltött fájl URL-eket és duration_token értékeket ideiglenes integrációs anyagként kezeld. Csak a következő generálási kérés felépítéséhez használd őket, és ne tedd ki nyilvános oldalakra.
Kapcsolódó oldalak
API hibák és limitek
Kezeld a Rivya API nyilvános hibakódjait, HTTP státuszértékeit, rate limitjeit, idempotenciaütközéseit és újrapróbálkozási döntéseit.
Generálási állapot
Kérdezd le a Rivya API generálási feladatait nyilvános task ID alapján, olvasd a queued, processing, succeeded és failed állapotokat, és használd fel az eredmény URL-eket.