Skip to content

S3 path support and ux#14

Closed
razeghi71 wants to merge 22 commits intomainfrom
cursor/s3-path-support-and-ux-5090
Closed

S3 path support and ux#14
razeghi71 wants to merge 22 commits intomainfrom
cursor/s3-path-support-and-ux-5090

Conversation

@razeghi71
Copy link
Owner

Adds S3 support to the burf application, allowing users to browse and manage S3 buckets and objects via the CLI.

This change introduces a Storage abstraction to support multiple cloud providers. The application now parses URIs (gs:// or s3://) to dynamically select the appropriate backend. When no URI is provided, it defaults to GCS to maintain existing behavior, and users can switch to S3 via s3:// prefixes in CLI arguments or the "Go to address" feature.


Open in Cursor Open in Web

This commit introduces support for Amazon S3 storage alongside Google Cloud Storage. The application has been refactored to abstract storage operations, allowing for seamless switching between GCS and S3. Key changes include:

- **S3 Integration**: A new `S3` class is added to handle S3 interactions using `boto3`.
- **Abstract Storage**: The `Storage` ABC is extended to include a `scheme` property, and `GCS` implements it.
- **URI Parsing**: `parse_uri` utility function is introduced to handle both `gs://` and `s3://` URIs, determining the appropriate storage scheme.
- **App Refactoring**: The main `BurfApp` (formerly `GSUtilUIApp`) is updated to accept a `Storage` object, enabling dynamic storage backend selection.
- **UI Updates**: Bindings, placeholders, and error messages are updated to reflect the dual storage support.
- **Error Handling**: Improved error handling for S3-specific `ClientError` exceptions in `FileListView`.
- **Dependencies**: `boto3` is added as a dependency.

This enhancement significantly broadens the utility of Burf, allowing users to manage files across both major cloud storage providers.

Co-authored-by: razeghi71 <razeghi71@gmail.com>
@cursor
Copy link

cursor bot commented Jan 9, 2026

Cursor Agent can help with this pull request. Just @cursor in comments and I'll start working on changes in this branch.
Learn more about Cursor Agents

cursoragent and others added 17 commits January 9, 2026 23:56
Co-authored-by: razeghi71 <razeghi71@gmail.com>
Co-authored-by: razeghi71 <razeghi71@gmail.com>
Co-authored-by: razeghi71 <razeghi71@gmail.com>
Co-authored-by: razeghi71 <razeghi71@gmail.com>
Co-authored-by: razeghi71 <razeghi71@gmail.com>
Co-authored-by: razeghi71 <razeghi71@gmail.com>
Co-authored-by: razeghi71 <razeghi71@gmail.com>
Co-authored-by: razeghi71 <razeghi71@gmail.com>
Co-authored-by: razeghi71 <razeghi71@gmail.com>
Co-authored-by: razeghi71 <razeghi71@gmail.com>
Co-authored-by: razeghi71 <razeghi71@gmail.com>
Co-authored-by: razeghi71 <razeghi71@gmail.com>
Co-authored-by: razeghi71 <razeghi71@gmail.com>
Co-authored-by: razeghi71 <razeghi71@gmail.com>
Co-authored-by: razeghi71 <razeghi71@gmail.com>
Co-authored-by: razeghi71 <razeghi71@gmail.com>
Co-authored-by: razeghi71 <razeghi71@gmail.com>
cursoragent and others added 4 commits January 10, 2026 01:21
This change introduces a StorageScheme enum to represent storage providers, improving type safety and code clarity.

Co-authored-by: razeghi71 <razeghi71@gmail.com>
Co-authored-by: razeghi71 <razeghi71@gmail.com>
Co-authored-by: razeghi71 <razeghi71@gmail.com>
@razeghi71 razeghi71 closed this Jan 10, 2026
@razeghi71 razeghi71 deleted the cursor/s3-path-support-and-ux-5090 branch January 10, 2026 21:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants