DocsPlatformFiles & Storage
Platform

Files & Storage

Your S3 workspace — how the bucket works, how uploads flow through Garage, and how to browse, edit, and download files from the dashboard.

Your S3 Bucket

Every ResonTech account gets a private S3-compatible bucket automatically provisioned at registration. No setup required — your bucket is ready when your account is. It is backed by Garage, a self-hosted, geographically distributed object store that implements the S3 protocol.

Your bucket credentials are on the Profile → Storage page:

CredentialWhere to find itNotes
Endpoint URLProfile → StorageYour Garage S3 endpoint (e.g. https://s3.reson.tech)
Bucket nameProfile → StorageUnique per account
Access Key IDProfile → StorageYour S3 access key
Secret Access KeyProfile → StorageShown once — copy it immediately
!
The secretAccessKey is shown once. If you lose it, go to Profile → Rotate Key. The old key is immediately revoked. All existing presigned URLs referencing the old key stop working.
Profile page — Storage section with bucket credentials

How S3 Access Works

The platform never acts as a data proxy. All file I/O goes directly between your client (browser, rclone, SDK) and Garage via presigned URLs. The API only generates these URLs — it never reads or writes your data.

Upload flow

  • Your client requests an upload URL from the API
  • API generates a presigned PUT URL (valid 15 minutes) pointing at Garage
  • Your client sends the file directly to Garage — zero bytes through the API
  • Garage stores the object and acknowledges the upload

Download flow

  • Your client requests a download URL for a specific object
  • API generates a presigned GET URL (valid 1 hour) pointing at Garage
  • Your client downloads directly from Garage at full network speed

Worker data access flow

  • At job dispatch, the kernel generates presigned GET URLs for each worker's assigned shard
  • Workers receive URLs valid for 1 hour — enough to download their shard and begin training
  • URLs expire after download — workers never have persistent access to your bucket
  • Raw training data never traverses the ResonTech control plane

Programmatic access (rclone)

Use rclone to access your bucket from the command line — upload large datasets, sync directories, download results:

Uploading Files

Small files (< 10 MB)

Toolbar → Upload → drag or browse. Files go directly to Garage via a 15-minute presigned PUT URL — zero bytes through the API.

Large files (≥ 10 MB) — automatic multipart

The browser automatically switches to multipart upload for large files:

  • File is split into 50 MB chunks
  • Up to 5 parts uploaded in parallel
  • On network failure, the incomplete upload is automatically aborted and retried
  • Maximum supported file size: 500 GB
Upload modal — large file multipart progress
Each chunk shows sub-progress. The overall bar fills as parts complete.
i
A 100 GB file involves only 2 API calls (initiate multipart + complete multipart). The 2,000 part uploads go straight to Garage — the API is never in the data path.

Uploading via rclone (recommended for large datasets)

File Viewer & Editor

Click any .py, .json, or .txt file to open the Monaco-based file viewer inline.

ActionHowWhat happens under the hood
ViewClick any text fileContent streamed from Garage via presigned GET URL
EditClick the pencil icon to enable the editorMonaco editor activated with syntax highlighting
SaveClick Save in the editor toolbarOverwrites the S3 object via a fresh presigned PUT URL
DownloadClick Download in the viewer header1-hour presigned GET URL — direct from Garage
RenameRight-click → RenameServer-side CopyObject + DeleteObject (no bytes transferred)
DeleteRight-click → DeleteRemoves the object. Folder delete is recursive.
!
The viewer is text-only. Use Download or rclone for .pt, .zip, and other binary formats.
File Viewer — model_def.py in edit mode
Monaco editor with syntax highlighting. Unsaved changes are indicated in the header.

Expected Workspace Layout

The Submit Wizard and Python SDK both expect this folder structure inside your bucket. Workers look for specific paths when a job starts:

Pinned File Panels

Pin any text file as a persistent side panel that stays open while you navigate — stored in localStorage across page reloads.

  • Open a file → click the Pin icon in the viewer header.
  • The panel attaches to the right side of the Files page.
  • Edit and save directly from the pinned panel without navigating away.
  • Click Unpin or the × to remove it.
Files page with a pinned file panel open alongside the browser

Pinned panels are useful when editing model_def.py while checking your config_fed_client.json side by side.