Skip to content

Object Browser

Sairo’s object browser is the primary interface for exploring your S3 buckets. It is designed to stay responsive even when a single prefix contains hundreds of thousands of objects.

The object list is rendered with @tanstack/react-virtual, which only mounts the DOM nodes currently visible in the viewport. This means a folder with 100,000+ objects uses the same amount of memory and renders just as smoothly as a folder with 10.

Every location in the browser is represented by a URL fragment in the form #bucket:prefix/path/. You can bookmark any folder, share the URL with a teammate, or use the browser’s back and forward buttons to navigate your history.

https://sairo.example.com/#my-bucket:data/2026/02/

A breadcrumb bar at the top of the browser shows the current path. Click any segment to jump directly to that level of the hierarchy without reloading the page.

Click any column header to sort the current folder’s contents:

ColumnSort behavior
NameAlphabetical (A-Z)
SizeSmallest to largest
ModifiedOldest to newest

Click the same column again to reverse the direction.

A filter input above the table narrows the visible objects to those whose name matches the typed substring. Filtering operates on the current folder only and does not recurse into subfolders.

  • Create folder — Click the “New folder” button to create a zero-byte object with a trailing / that acts as a folder marker.
  • Bulk select — Use the checkboxes to select multiple objects, or click the header checkbox to select all visible items.
  • Bulk delete — With one or more objects selected, click “Delete” to remove them in a single batch request.

When you open a folder, Sairo’s backend streams object metadata to the browser as newline-delimited JSON (NDJSON). The frontend appends rows to the table as each chunk arrives rather than waiting for the full response. This gives you progressive rendering — you see the first results immediately, even if the folder contains millions of objects.