Like FlySystem for PHP :
FileSystemAbstraction is a filesystem abstraction which allows you to easily swap out a local filesystem for a remote one.
- Have a generic API for handling common tasks across multiple file storage engines.
- Have consistent output which you can rely on.
- Integrate well with other packages/frameworks.
- Be cacheable.
- Emulate directories in systems that support none, like AwsS3.
- Support third party plugins.
- Make it easy to test your filesystem interactions.
- Support streams for big file handling
If you have only one FileSystem Adapter (Local/AzureBlobStorage/...), you should use :
- FileSystem API : Access all methods through FileSystem
- File API : Get a IFile through FileSystem API and access to its methods
Otherwise, you shoul use :
- Multiple Adpaters FileSystem API : Access all methods through FileSystem by scheme.
- File API : Get a IFile through Multiple Adpaters FileSystem API and access to its methods