# Files

S3 buckets, SFTP servers and local folders open in a two-pane file manager, and any pane can transfer to any other one.

## Where to find it

| Action | How |
| --- | --- |
| Open the Files workspace | Open an S3 or SFTP connection |
| Switch panes | `Tab` |
| Preview a file | `Space` |
| Reload a listing | `⌘R` (`Ctrl+R`) |
| Filter a listing | `⌘F` (`Ctrl+F`) |
| Type a path | `⌘L` (`Ctrl+L`) |
| Rename | `F2` |
| Copy or move to the other pane | `F5` or `F6` |
| New folder | `F7` |
| Delete | `F8` |
| Open this folder in the other pane | `⌘⇧O` (`Ctrl+Shift+O`) |
| Swap panes | `⌘U` (`Ctrl+U`) |
The toolbar under the panes and each entry's context menu offer the same actions.

## Two panes

Each pane keeps its own location, path, filter, sort order and hidden-files setting, and the pane with focus is outlined. Choose the location button at the left of a pane header to point that pane at another file connection or at `Local`, a folder on this computer. Each pane's footer counts its items and selection, and the status bar repeats the count for the focused pane.

## Browsing and filtering

Double-click a folder or press `Enter` to open it, and press `⌫` with nothing selected to go up a level. Press `⌘F` or start typing to filter the loaded entries by name, and `Esc` clears the filter. In SFTP and local panes, `Show hidden files` in the pane's options menu reveals dotfiles.

## Previews

Press `Space` or double-click a file to preview it without downloading the whole object. Text and JSON show their first 256 KB, with JSON indented, and images up to 20 MB display in the window. Other files list their name, path, size, modification time and content type, plus the storage class on S3. `Space` or `Esc` closes the preview.

## Copying and moving

Select entries and press `F5` to copy them to the folder open in the other pane, or `F6` to move them. The confirmation names both locations and checks for existing names, then starts a [job](https://bobbytables.app/docs/jobs) you can follow from `Jobs` in the status bar. Dropping a selection on the other pane asks to copy it, or to move it if you hold `⌘` (`Ctrl`), and files dropped from the desktop are copied. `Upload…` and `Download…` in a remote pane's context menu transfer to and from a folder you choose.

## Routes

The confirmation and the job both show how a transfer between two connections travels. When both panes are on the same SFTP server, or on the same S3 endpoint with the same access key, the copy runs on the server and the job shows `SERVER`. Between different servers the app downloads and uploads the data itself, and the job shows `VIA APP`. Transfers to or from a local folder carry no route badge.

## Conflicts and renaming

When names already exist at the destination, the confirmation counts them and offers `Skip existing` or `Overwrite` for the whole transfer. Press `F2` to rename the selected entry in its row, then `Enter` to keep the new name or `Esc` to cancel. SFTP renames a folder in one step, while S3 and local folders copy and then delete, asking first when a folder holds more than 1,000 objects.

## New folders and deleting

Press `F7` and enter a name to create a folder in the focused pane. Press `F8` to delete the selection; the confirmation lists each entry and marks folders `(and everything inside)`. S3 and SFTP have no trash, so the confirmation warns that deletes are permanent, while local files move to the Trash when the system provides one.

## Presigned URLs

Right-click a file in an S3 pane and choose `Copy presigned URL` to put a signed download link on the clipboard. Anyone with the link can download that one object until it expires, and the notice above the panes says when. A connection without an access key cannot create one.

## Read-only connections

A connection saved with `Open in read-only mode` can be browsed, previewed and copied from, but nothing in it can change. Copying or dropping into it, moving, renaming, new folders, uploads and deletes are disabled, and pointing at a disabled action shows `Read-only connection`.

## Good to know

- S3 has no folders; the app treats each key prefix as a folder.
- A connection's root prefix is the highest location its panes reach, including through a typed path or `..`.
- SFTP uploads write to a temporary name and rename into place, so a failed or cancelled upload does not replace the original.
- After a sleep, a network change or a server restart, the next SFTP operation dials a fresh session.
- A listing stops at 100,000 entries, and one copy, move or delete handles at most 1,000,000 objects.
- Bucket-wide work has its own pages: [Bucket backups](https://bobbytables.app/docs/bucket-backups) and [Empty bucket](https://bobbytables.app/docs/empty-bucket).

## Related

- [Connections](https://bobbytables.app/docs/connections.md)
- [Jobs](https://bobbytables.app/docs/jobs.md)
- [Bucket backups](https://bobbytables.app/docs/bucket-backups.md)
- [Empty bucket](https://bobbytables.app/docs/empty-bucket.md)
- [Snapshots](https://bobbytables.app/docs/snapshots.md)
