2022年6月23日15:30:20
之前文件上传都是自己使用splobject自己写的,但是发现Storage提供不少好用的方法,就尝试了一下,发现默认配置
config/filesystems.php
'disks' => [
'local' => [
'driver' => 'local',
'root' => storage_path('app'),
],
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL') . '/storage',
'visibility' => 'public',
],
's3' => [
'driver' => 's3',
'key' => env('AWS_ACCESS_KEY_ID'),
'secret' => env('AWS_SECRET_ACCESS_KEY'),
'region' => env('AWS_DEFAULT_REGION'),
'bucket' => env('AWS_BUCKET'),
'url' => env('AWS_URL'),
'endpoint' => env('AWS_ENDPOINT'),
],
'uploads' => [
'driver' => 'local',
'root' => public_path('uploads'),
'url' => public_path('uploads'),
'visibility' => 'public',
],
],
uploads是最后新增的部分
使用的方法,就可以按照正常使用了
默认访问路径是public/uploads
如果你使用URL::to
'url' => \Illuminate\Support\Facades\URL::to('uploads'),
使用全空间命名会报错 A facade root has not been set.
https://learnku.com/docs/laravel-cheatsheet/8.x
Storage可以看到大部分使用问题
$fileContents = 333333;
Storage::disk('uploads')->put('avatars/2', $fileContents);
p(Storage::disk('uploads')->url('avatars/2'));
输出
D:\phpstudy_pro\WWW\yida_api\public\uploads/avatars/2
最好用的应该是ftp sftp oss支持