存储

驱动类型

驱动 描述
Local 本地文件处理简单适配封装
Ftp 基于ftp协议,需要php ftp扩展
Sftp 基于ssh协议,需要php ssh2扩展
S3 亚马逊s3服务
Oss 阿里云oss服务
Qiniu 七牛云存储
Webdav 基于Webdav协议,兼容多种网盘,如Box OneDrive Pcloud 坚果云

配置示例

return [
'local' => [
'driver' => 'local',
// 本地文件目录
'dir' => APP_DIR.'storage/',
],
's3' => [
'driver' => 's3',
'bucket' => 'your_bucket',
'region' => 'us-east-1',
'acckey' => 'your_acckey',
'seckey' => 'your_seckey',
],
'oss' => [
'driver' => 'oss',
'bucket' => 'your_bucket',
'endpoint' => 'oss-cn-beijing.aliyuncs.com',
'acckey' => 'your_acckey',
'seckey' => 'your_seckey',
],
'qiniu' => [
'driver' => 'qiniu',
'bucket' => 'your_bucket',
'region' => 'z1',
'domain' => 'your_domain',
'acckey' => 'your_acckey',
'seckey' => 'your_seckey',
],
'ftp' => [
'driver' => 'ftp',
'host' => '127.0.0.1',
//'port' => 21,
'username' => 'username',
'password' => 'password',
],
'sftp' => [
'driver' => 'sftp',
'host' => '127.0.0.1',
//'port' => 22,
//'chroot' => '/home/qiujin',
'username' => 'username',
'password' => 'password',
],
'webdav' => [
'driver' => 'webdav',
'server' => 'https://dav.jianguoyun.com/dav',
'username' => 'username',
'password' => 'password',
],
];

使用示例

/*
* 读取文件(文件不存在会触发错误或异常)
* $from 要读取的storage文件路径
* $to 本地磁盘文件路径,如果为空,返回文件读取的文件内容
* 如果不为空,方法读取的文件内容保存到$to的本地磁盘文件路径中,返回true或false
*/
$storage->get($from, $to = null);
/*
* 检查文件是否存在(文件不存在不会触发错误或异常)
*/
$storage->has($from);
/*
* 获取文件元信息
* 返回array包含,size:文件大小,type:文件类型,mtime:文件更新时间 等信息
*/
$storage->stat($from);
/*
* 上传更新文件
* $from 本地文件,如果 $is_buffer为false,$from为本地磁盘文件路径
* 如果 $is_buffer为true,$from为要上传的buffer内容
* $to 上传后储存的storage路径
*/
$storage->put($from, $to, $is_buffer = false);
/*
* 复制storage文件,从$from复制到$to
*/
$storage->copy($from, $to);
/*
* 移动storage文件,从$from移动到$to
*/
$storage->move($from, $to);
/*
* 删除storage文件
*/
$storage->delete($from);
/*
* 获取storage文件访问url
*/
$storage->url($path);
/*
* 抓取远程文件并保存到storage
* 支持http https和所有storage配置实例
*/
$storage->fetch($from, $to);