# General Input Storage integration

> An S3-style object store the platform hosts for the user. Put and get files of any size by key; bytes move over presigned URLs and never through the workflow runtime. Use for uploads, exports, media, datasets, and anything that must outlive a run.

- Authentication: platform

## Tools (6)

- **Create, List, or Rename Stores**: Manage the stores themselves: create a new one, list the ones you can use, or rename one you own. Metadata endpoint (`/storage/user-storage-admin`); object operations live under `/storage/user-storage`.
- **Delete Object**: Delete one object from a store by key. Idempotent: deleting a key that is not there succeeds and reports it.
- **List Objects**: Page through the objects in a store, optionally under a key prefix. Returns keys, sizes, and a cursor; a store has no folders, only prefixes.
- **Presign Download**: Get a presigned GET URL for an object in a store. Fetch it directly, hand it to a browser as a download link, or curl it onto the sandbox disk.
- **Presign Upload**: Get a presigned PUT URL to write an object into a store. The caller then uploads the bytes directly to object storage; they never pass through the platform API.
- **Stat Object**: Check whether an object exists in a store and how large it is, without downloading it.

Connect General Input Storage in General Input: https://www.generalinput.com/apps/user-storage