laravel file storage主要依靠config/filesystem.php里面的配置,default指定默认的disk,一个disk代表一种存储方式,比如不同目录、不同存储驱动都可以定义为一种disk。类同于平时使用的磁盘概念。
laravel实现依赖于php组件composer require league/flysystem,强大易用。受益于laravel的假面storage,一键解决所有文件管理的问题。

依赖的组件

local不需要安装任何依赖,但是下面三种需要附加安装一下依赖:

SFTP: league/flysystem-sftp ~1.0
Amazon S3: league/flysystem-aws-s3-v3 ~1.0
Rackspace: league/flysystem-rackspace ~1.0

如果要添加缓存,需要附加安装一下组件:

CachedAdapter: league/flysystem-cached-adapter ~1.0

易用性

使用假面storage即可,如果你需要管理多个disk,在storage后面添加disk即可。基本包含了所有必须的文件操作。

Storage::put('avatars/1', $fileContents);
Storage::get('file.jpg');
Storage::exists('file.jpg');
Storage::download('file.jpg');
Storage::url('file.jpg');
Storage::size('file.jpg');
Storage::lastModified('file.jpg');
Storage::prepend('file.log', 'Prepended Text');
Storage::append('file.log', 'Appended Text');
Storage::copy('old/file.jpg', 'new/file.jpg');
Storage::move('old/file.jpg', 'new/file.jpg');
Storage::getVisibility('file.jpg');
Storage::setVisibility('file.jpg', 'public');
Storage::delete(['file.jpg', 'file2.jpg']);
$files = Storage::files($directory);
$files = Storage::allFiles($directory);

引用

laravel filesystem