# S3 Browser

> Browse S3 buckets and objects in a web UI for local emulators or real AWS. Upload by drag and drop, download, manage folders, tags, versioning, lifecycle, CORS and event notifications.

Source: https://stackport.cloud/docs/services/s3/

The S3 view works like a file manager for your buckets, with the bucket settings you usually reach for the AWS console to change.

<picture>
  <source srcset="/images/s3.webp" type="image/webp" />
  <img src="/images/s3.png" alt="StackPort S3 browser showing a bucket's folders and objects" width="4800" height="3000" loading="lazy" decoding="async" />
</picture>

## Buckets

The bucket list shows each bucket's name, region and creation date. Against a local emulator it also shows the object count, total size and badges for versioning, encryption and tags. Those extra columns are skipped against real AWS so that opening the list does not walk every bucket in the account.

**Create bucket** asks for a name (checked against the S3 naming rules as you type), optional versioning and optional tags, then opens the new bucket.

## Objects and folders

Open a bucket to browse it. Folders come first, then files, with a breadcrumb path above and a filter that matches on name.

- **Upload** with the button or by dragging a file onto the page. Uploads go into the folder you are in. Files over 1 MiB show a progress dialog you can cancel.
- **Download** any object.
- **New folder** creates an empty `prefix/` marker, the same thing the AWS console does.
- **Delete** a single object, the objects you selected, or a whole folder with everything under it. Each asks for confirmation first.
- **Object details** show size, content type, encoding, ETag, last modified, version ID, user metadata and tags, plus the raw response.

`Backspace` goes up one folder.

## Bucket tags and settings

Each bucket has a **Tags** tab with an editor, and a **Settings** tab for:

- **Versioning**: switch between enabled and suspended.
- **Lifecycle rules**: expire objects under a prefix after a number of days.
- **Event notifications**: send events to a Lambda function, SQS queue or SNS topic, with event types and prefix or suffix filters. The destination field suggests the functions, queues and topics that exist on the endpoint.
- **CORS**: allowed origins, methods, headers and max age.

## Upload size

The largest single upload is set by `STACKPORT_S3_MAX_UPLOAD_MB` (100 MiB by default). The browser checks it before uploading and the server enforces it.

```bash
STACKPORT_S3_MAX_UPLOAD_MB=500 stackport
```

## Links and export

- Deep link to a bucket and folder with `?bucket=my-bucket&prefix=data/`.
- Export the bucket list or the files in the current folder to JSON or CSV.
