Private Files
By default, files stored in Rendi are served from a public storage domain — thestorage_url in poll and get responses is directly downloadable by anyone who has the link. For workloads with stricter access requirements, Rendi supports private storage: files placed there have no public URL and can only be downloaded via a short-lived presigned URL that you request on demand.
Private storage is not available on trial plans.
Marking a File as Private
Passis_private: true on any endpoint that produces a stored file:
POST /v1/run-ffmpeg-command— command’s output files land in private storagePOST /v1/run-chained-ffmpeg-commands— same for chained outputsPOST /v1/files/store-file— the file you’re storing lands in private storagePOST /v1/files/init-upload— direct upload lands in private storage
is_private: true in every response that returns it.
Downloading a Private File
Thestorage_url field on a private file is null — the file has no public location. To download it, ask the poll endpoint for a presigned URL: a signed, time-limited URL that grants read access for a duration you choose.
Pass presigned_ttl_seconds as a query parameter:
GET /v1/files/{file_id}?presigned_ttl_seconds=3600GET /v1/commands/{command_id}?presigned_ttl_seconds=3600
storage_url is replaced with a presigned URL valid for the requested number of seconds. Maximum TTL is 7 days.
If the file is public (or hasn’t finished processing yet), the parameter is ignored and the response’s
storage_url is unchanged.Reusing Private Files as Command Inputs
To use a private file as an input to anotherrun-ffmpeg-command, request a presigned URL for it first, then pass that URL in input_files as you would any other. Set a presigned_ttl_seconds value comfortably larger than your expected queue-wait + processing time so the URL is still valid when the backend downloads it.