How AI file transfers work
How an AI client downloads and uploads files with short-lived links that never pass file contents through quickS3, and why some clients only browse.
File contents never pass through quickS3’s MCP server. Instead, quickS3 gives the AI client a short-lived link, and the client moves the file itself, straight to or from your storage provider.
Downloads
- The client calls
create_download_linkfor a file. - quickS3 returns a link that works once, for 5 minutes.
- The client opens the link, for example with
curl -L -o report.pdf "<link>". quickS3 checks the access again, records the download, and forwards the client to your storage provider, which sends the file.
Uploads
- The client calls
create_upload_urlwith the file’s path and size. - quickS3 checks Write access and the size limits, and returns an upload link that works for 15 minutes, plus any headers the upload must include.
- The client sends the file to that link, for example with
curl -T report.pdf "<link>", including every header it was given.
By default, an upload won’t replace an existing file. The client has to ask you first, then try again with overwrite switched on.
Uploads go in one piece, so an AI client can upload files up to 5 GB, or less if the connection has a lower limit. For bigger files, use the quickS3 web app, which splits them into parts.
Why some clients can only browse
Listing files only needs the client to call quickS3’s tools. Moving a file needs the client to make an HTTP request itself. Coding assistants like Claude Code and Codex can do that. Chat apps often can’t, so they’ll list your files and then fail to download one.
If that happens, use a client that can run commands, or the web app. Don’t paste links into a chat to get around it: anyone with a link can use it until it expires.