Upload a storage object
upload_objectUpload one file into the project's managed S3 bucket — the write half of the object-storage tools, the same reach the dashboard's Object storage explorer gives the owner. Pass key (the destination path, e.g. "images/logo.png") and content_base64 (the file's bytes, base64-encoded — binary like images is fine). An existing object at the same key is silently OVERWRITTEN; list_objects shows what a key already holds. content_type is optional and sniffed from the key's extension when omitted. Uploads to the project's OWN bucket via its managed credentials; never asks the user for a key and never stores binaries in Postgres. Per-file size limit applies. Requires a read-write token.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | the destination object key, e.g. "images/logo.png"; may contain / to place it in a folder, must not end in / (that is a folder marker) and must not contain .. path traversal | |
| project_id | Yes | the project id (from list_projects) | |
| content_type | No | optional MIME type, e.g. "image/png"; omitted, it is sniffed from the key's extension | |
| content_base64 | Yes | the file's bytes, base64-encoded (standard encoding). Binary is fine — this is how an image crosses the JSON boundary |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | ||
| size | Yes | ||
| bucket | Yes | ||
| message | Yes | ||
| project_id | Yes | ||
| content_type | Yes |