Skip to content

feat(s3): add S3 bucket browsing as a VFS provider#3843

Open
fecet wants to merge 1 commit intosxyazi:mainfrom
fecet:feat/s3-vfs
Open

feat(s3): add S3 bucket browsing as a VFS provider#3843
fecet wants to merge 1 commit intosxyazi:mainfrom
fecet:feat/s3-vfs

Conversation

@fecet
Copy link
Copy Markdown

@fecet fecet commented Apr 2, 2026

Summary

  • Implement a read-only S3 provider built on the object_store crate, allowing users to browse S3-compatible buckets natively within yazi
  • Add ServiceS3 config with support for region, endpoint, credentials, force_path_style, and allow_http
  • Extend Url enum and SchemeKind with an S3 variant; implement read_dir (paginated listing), metadata, and streaming read

Screenshot

image

Details

This builds on the VFS provider infrastructure from #3821. The S3 provider is currently read-only — write operations (copy, create, create_dir, etc.) return Unsupported.

Configuration example in yazi.toml:

[[vfs.services]]
name = "my-s3"
type = "s3"
region = "us-east-1"
endpoint = "https://s3.amazonaws.com"
# access_key_id = "..."
# secret_access_key = "..."
# force_path_style = false
# allow_http = false

Then browse via s3://my-s3/bucket-name/path/.

@fecet fecet force-pushed the feat/s3-vfs branch 2 times, most recently from 95e85fb to 046f303 Compare April 2, 2026 11:44
Implement a read-only S3 provider built on the `object_store` crate,
allowing users to browse S3 buckets natively within yazi.

- Add `ServiceS3` config (region, endpoint, credentials, force_path_style, allow_http)
- Add `S3` variant to `Url` enum and `SchemeKind`
- Implement read_dir with paginated listing, metadata, and streaming read
- Write operations return `Unsupported` for now
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant