storage_fs 0.1.0
storage_fs: ^0.1.0 copied to clipboard
A comprehensive filesystem abstraction for Dart, inspired by Laravel's Storage facade. Supports both local and cloud storage with a unified API.
0.1.0 - 2025-10-16 #
Features #
- Laravel-Inspired Storage Facade: High-level storage abstraction with familiar Laravel-style API
- Multiple Storage Drivers: Support for local filesystem and cloud storage backends
- Cloud Storage Integration: Seamless integration with S3-compatible services via
file_cloud - Configuration-Driven Setup: Flexible disk configuration with multiple backends
- Signed URLs: Generate secure temporary URLs for cloud storage access
- File Visibility Controls: Public/private access control for cloud files
- Directory Operations: Comprehensive directory management with recursive support
- File Metadata: Size, MIME type, checksum, and modification time support
- Streaming Operations: Efficient large file handling with stream APIs
- Testing Support: Built-in fake disks for easy unit testing
- Scoped Disks: Path-prefixed storage areas for multi-tenant applications
- Custom Drivers: Extensible architecture for custom storage backends
API #
Storage: Static facade for storage operationsFilesystemManager: Manages multiple storage disks and driversFilesystemAdapter: Local filesystem implementationCloudAdapter: Cloud storage implementation usingfile_cloudDiskConfig: Configuration for storage disksStorageConfig: Global storage configuration
Storage Operations #
- File Operations:
get(),put(),delete(),exists(),copy(),move() - Directory Operations:
files(),directories(),makeDirectory(),deleteDirectory() - Cloud Features:
temporaryUrl(),temporaryUploadUrl(),getVisibility(),setVisibility() - Utility Methods:
size(),mimeType(),checksum(),lastModified() - Batch Operations:
putFile(),putFileAs(),delete()with multiple paths
Supported Storage Backends #
- Local Filesystem: Full local file operations with visibility controls
- Cloud Storage: S3-compatible services (AWS S3, MinIO, Cloudflare R2, DigitalOcean Spaces)
- Scoped Storage: Path-prefixed areas within existing disks
- Custom Drivers: Extensible driver system for additional backends
Configuration #
- Disk Configuration: Multiple named disks with different drivers
- Driver Options: Flexible configuration for each storage backend
- Default Disk: Configurable default storage disk
- Cloud Disk: Designated cloud storage disk for advanced features
Testing Features #
- Fake Disks: In-memory testing disks that persist across tests
- Persistent Fakes: Fake disks that maintain state between test runs
- Assertion Methods:
assertExists(),assertMissing(),assertCount(),assertDirectoryEmpty() - Cleanup: Automatic test isolation and cleanup
Examples #
- Complete configuration examples for local and cloud storage
- Usage examples for all major features
- Testing examples with fake disks
Breaking Changes #
- None (initial release)
Dependencies #
file: ^7.0.1- Dart filesystem interfaceminio: ^3.5.8- MinIO client librarypath: ^1.9.1- Path manipulation utilitiesmeta: ^1.17.0- Metadata annotationscrypto: ^3.0.6- Cryptographic functionsmime: ^2.0.0- MIME type detectionconvert: ^3.1.2- Data conversion utilitiesfile_cloud- Cloud filesystem backend (workspace dependency)