Smart File Manager

Upload once, serve it public or private

Store files of any type, serve public ones from a CDN and private ones through short-lived signed links, with size, dimensions and duration recorded for you.

The same task, three ways

Every task works three ways, and all of them change the same project. Here's one: upload a podcast episode and get its public URL.

The Anythink dashboard

Switch Public on, drag the file in, copy the link.

  1. ›Files → Public: on
  2. ›Upload Files → episode-12.mp3
  3. ›Copy public link on the new file
  4. ✓the CDN URL is on your clipboard

The Anythink CLI

files get shows the basics. fetch returns the full record, including cdn_url and duration_seconds.

$ anythink files upload episode-12.mp3 --public$ anythink files list# 87 is the id that files list shows$ anythink fetch /files/87
  • ✓File uploaded and marked public
  • ✓The record includes cdn_url, the public URL
  • ✓Duration and hash appear once the file has been probed

Claude, through MCP

Ask for the upload and the details. It runs the same commands.

you › “Upload episode-12.mp3 as a public file, then tell me its duration and CDN URL once it's been probed.”

  • ✓Uploaded episode-12.mp3 as a public file
  • ✓Read the file record
  • ✓Reported the duration and CDN URL

Built for large files

Scale

Downloads never stream through the API

A request for a file gets a redirect to a signed storage link, so a large download goes straight from storage to the client instead of through the API.

Integrity

Every file gets a SHA-256 hash

The content hash is computed when the file is probed, so you can spot duplicate uploads or check that a file hasn't changed.

Access

Private files follow your permissions

Signed links are issued only to callers allowed to read files, and they expire within five minutes. Public files carry no credentials at all.

File storage that knows what you uploaded

Upload, organise and serve files from the same project as your data, with access rules and media metadata handled for you.

Uploads streamed to storage

Files go from the request straight into object storage without being buffered in memory, so a multi-gigabyte upload doesn't stall the API. Your project's storage quota is checked before the upload starts.

In practice

The REST calls behind it

upload.sh
curl -X POST "https://api.my.anythink.cloud/org/{org_id}/files?isPublic=true&folderId=3" \
  -H "Authorization: Bearer <access token>" \
  -F "file=@episode-12.mp3"

How it works

From an upload to a file your app can serve

01

Upload

Send the file to /files from the dashboard, the CLI or your app. It streams into storage, after a check against your project's storage quota.

02

Choose who can see it

Public files get a CDN URL. Private files stay behind your permissions and are served through signed links.

03

Let the worker probe it

A background worker downloads the file to temporary disk, reads its media details and hash, and writes them back to the file record.

04

Attach it to a record

Link the file to an entity through a file field, by hand, from your app or with a File Handler workflow step.

05

Serve it

Your app requests the file and gets a redirect to the CDN or to a short-lived signed link. The bytes never pass through the API.

Follow the guide

Public files, private files and CDN links

Upload through the dashboard or the CLI, and add file fields to your own entities.

Read the file management guide →

Frequently Asked Questions

How does file storage work in Anythink?

Upload a file to /files and Anythink streams it into object storage, records its name, type and size, and queues it for probing. A background worker then adds media metadata such as duration, dimensions and a SHA-256 hash. Each file can be public or private, sit in a folder, and be linked to records through a file field.

How do I keep uploaded files private?

Files are private unless you upload them as public. A private file is served through a signed storage link that expires within five minutes, and only to callers with permission to read files. Public files are served from a CDN with no credentials, and the public file endpoint returns 404 for anything private.

Can I import files from another service?

Yes, with a workflow. The File Handler step fetches a file from a URL, stores it in your project and links it to a record's file field. Run it for each record that holds a source URL to move files over from S3 or any HTTP location.

Does Anythink extract video duration and image dimensions?

Yes. After an upload, a background worker runs ffprobe on the file and writes back duration, width, height, bitrate, frame rate, codecs and audio channels where they apply, plus a SHA-256 content hash. The upload returns straight away and the metadata appears shortly after.

Still have questions?

Get in Touch

More in the same project

Every feature reads from the same data model, so each one you add works with the rest.

Files that live next to your data

Uploads stream straight to storage, downloads use short-lived signed links, and any record can carry a file field.