Overview
The storage_client package is a Dart library that enables Flutter applications to interact with Supabase Storage, a service for managing files in S3-compatible storage with PostgreSQL-driven access control. It provides methods to upload, download, list, and delete files securely, leveraging Supabase's authentication and permission system. Designed for seamless integration with Supabase projects, it supports all major platforms including mobile, web, and desktop. The package simplifies file handling while maintaining robust security through role-based access.
Use cases
- Uploading user-generated content like images or documents
- Managing app assets stored in cloud storage
- Implementing secure file sharing between users
- Storing and retrieving media files in real-time apps
- Enabling dynamic content delivery in Flutter apps
Key features
- Secure file operations via Supabase auth
- Support for S3-compatible storage backend
- Cross-platform compatibility (Android, iOS, Web, macOS, Windows, Linux)
- Integration with Postgres for fine-grained permissions
- Simple API for upload, download, and listing files
Suitable for
- Flutter apps using Supabase as backend
- Applications requiring secure file management
- Projects needing scalable cloud storage with access control
- Developers building media-heavy or document-based apps
- Teams already using Supabase for authentication and databases
Considerations
- Requires a Supabase project with Storage enabled
- Authentication must be set up in the app
- File access permissions depend on Postgres policies
- Limited to Supabase's storage infrastructure
- May require additional setup for custom S3 configurations