manage_user_files
Deliver files through a two-step direct upload, or list/get/delete retained user files. Upload takes file metadata, never a local path or file bytes: compute the exact byte count and base64 MD5 locally, then action=upload reserves a pending file and returns a signed PUT URL plus required headers. Upload the original bytes directly to that URL with every returned header, then call action=complete with the returned full id. Do not claim delivery until complete returns status=ready. No backend workspace is used. Default access=private returns a stable authenticated downloadUrl; keep ordinary files and .blend sources private. Explicit access=public-model makes a self-contained .glb world-readable at its stable CORS-enabled publicUrl. Use that publicUrl for Three.js Motion Graphics and exports, never a local path, private downloadUrl or expiring URL. Files persist independently of the project; limits are 100 MiB/file and 1 GiB/100 live or reserved files/user. Delete removes public model bytes immediately; private bytes follow the retention policy. For timeline media, use import_media.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"action": "<action>"
},
"name": "manage_user_files"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| access | No | Upload only. Default private; public-model explicitly publishes a self-contained .glb for anonymous browser/export loading. | |
| action | Yes | ||
| before | No | List only: pagination cursor returned as nextBefore. | |
| fileId | No | Required for complete/get/delete: the full id from upload/list. | |
| filename | No | Upload only: filename including its extension, not a path or URL. | |
| projectId | No | Project for this call (full ID or unambiguous prefix). Explicit-timeline calls never change the target of later calls; legacy project selection applies otherwise. | |
| sizeBytes | No | Upload only: exact byte count of the local file; at most 100 MiB. | |
| contentMd5 | No | Upload only: MD5 of the exact bytes, encoded as base64 (not hex). | |
| timelineId | No |