抽象化的文件系统:Flysystem
jopen
10年前
Flysystem是一个抽象化文件系统,它允许您轻松用远程文件系统换掉一个本地文件系统。
目标
- 拥有一个通用的API来处理跨多个文件存储的常见任务
- 拥有一致的输出
- 与其他包/框架很好地集成。
- 可缓存。
- 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
spl_autoload_register(function($class) { $prefix = 'League\\Flysystem\\'; if ( ! substr($class, 0, 17) === $prefix) { return; } $class = substr($class, strlen($prefix)); $location = __DIR__ . 'path/to/flysystem/src/' . str_replace('\\', '/', $class) . '.php'; if (is_file($location)) { require_once($location); } });
Adapters
- Local
- Amazon Web Services - S3
- Rackspace Cloud Files
- Dropbox
- Copy
- Ftp
- Sftp (through phpseclib)
- Zip (through ZipArchive)
- WebDAV (through SabreDAV)
- NullAdapter
Planned Adapters
- Azure (PR welcome)
- PR's welcome?
Caching
- Memory (array caching)
- Redis (through Predis)
- Memcached
- Adapter
- Stash
项目主页:http://www.open-open.com/lib/view/home/1416897859230