Upload API
POST /api/assets/init-upload
Section titled “POST /api/assets/init-upload”Rozpoczyna upload i zwraca podpisany URL uploadu.
Walidacje:
- rate limit per IP
- opcjonalna walidacja Turnstile
- limity projektowe (rozmiar/ilość/doba)
- wymagane
rightsConsent: true(self-declaration o prawach do materiału)
PUT /api/assets/:assetId/upload
Section titled “PUT /api/assets/:assetId/upload”Endpoint uploadujący body do R2 (dubbit-assets) z tokenem HMAC.
POST /api/assets/complete-upload
Section titled “POST /api/assets/complete-upload”Finalizuje upload, weryfikuje checksum+size i enqueue q_ingest.
GET /api/assets/:assetId/download
Section titled “GET /api/assets/:assetId/download”Tworzy czasowy signed URL.
GET /api/assets/:assetId/download/signed
Section titled “GET /api/assets/:assetId/download/signed”Zwraca obiekt z R2 po walidacji tokena.
GET /api/projects/:projectId/exports-preview
Section titled “GET /api/projects/:projectId/exports-preview”Zwraca listę eksportów projektu z krótkotrwałymi signed URL (url, expiresAt) do odtwarzania i pobrania wyniku na widoku projektu.
Uwagi:
- endpoint wymaga zalogowanej sesji i ownership projektu,
- opcjonalny query param
limit(domyślnie20, max30), - endpoint sprawdza istnienie obiektów w R2 z ograniczoną współbieżnością (żeby nie przekraczać budżetu subrequestów Workera),
- signed URL wygasa domyślnie po ~10 minutach,
missing: trueoznacza, że rekord eksportu istnieje w D1, ale plik nie został znaleziony wdubbit-exports.
GET/HEAD /api/projects/:projectId/exports/:exportId/download/signed
Section titled “GET/HEAD /api/projects/:projectId/exports/:exportId/download/signed”Zwraca plik eksportu z dubbit-exports po walidacji tokena.
Uwagi:
- wspiera
Range(audio player), ?download=1ustawiaContent-Disposition: attachment(przycisk pobrania).