laravel之Storage
学习laravel一段时间了,从最开始文件保存到本地直到oss都使用原生或接口。今天偶尔看到了Storage。正好项目中有用到就在项目上使用了。
1.下载安装库
composer require jacobcyl/ali-oss-storage
2.在config/app.php的providers中新增
Jacobcyl\AliOSS\AliOssServiceProvider::class,
3.在app/filesystems.php中新增
'disks'=>[ ... 'oss' => [ 'driver' => 'oss', 'access_id' => '<Your Aliyun OSS AccessKeyId>', 'access_key' => '<Your Aliyun OSS AccessKeySecret>', 'bucket' => '<OSS bucket name>', 'endpoint' => '<the endpoint of OSS, E.g: oss-cn-hangzhou.aliyuncs.com | custom domain, E.g:img.abc.com>', // OSS 外网节点或自定义外部域名 //'endpoint_internal' => '<internal endpoint [OSS内网节点] 如:oss-cn-shenzhen-internal.aliyuncs.com>', // v2.0.4 新增配置属性,如果为空,则默认使用 endpoint 配置(由于内网上传有点小问题未解决,请大家暂时不要使用内网节点上传,正在与阿里技术沟通中) 'cdnDomain' => '<CDN domain, cdn域名>', // 如果isCName为true, getUrl会判断cdnDomain是否设定来决定返回的url,如果cdnDomain未设置,则使用endpoint来生成url,否则使用cdn 'ssl' => <true|false> // true to use 'https://' and false to use 'http://'. default is false, 'isCName' => <true|false> // 是否使用自定义域名,true: 则Storage.url()会使用自定义的cdn或域名生成文件url, false: 则使用外部节点生成url 'debug' => <true|false> ], ... ]
4.在config/filesystems.php的default设置为oss;
或在.env中新增
FILESYSTEM_DRIVER=ali
5.因为我用的是laravel-admin,所以config/admin.php修改disk 非laravel-admin忽略此步
'upload' => [ 'disk' => 'oss', 'directory' => [ 'image' => 'images', 'file' => 'files', ], ],
6.在控制器中
use Illuminate\Support\Facades\Storage;
//code Storage::put($fileName, file_get_contents($file->getRealPath()));
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步