Laravel Storage::get 在创建符号 link 后无法访问

Laravel Storage::get unable to access after symbolic link created

以下 uploads/moves 文件在 5.5 中正确 -- 能够从目录中 see/access -- 但 Storage::get 没有 return 文件路径,甚至与一个符号 link 创建,直接访问文件给出 404。

$currentuser_id = Auth::user()->id;
$file = request()->file('resume');
$fileName = $file->getClientOriginalName();
Storage::disk('uploads')->put($currentuser_id.'/'.$fileName, file_get_contents($file));

尝试访问文件,$content 为空:

$content = Storage::disk('uploads')->get($currentuser_id.'/filename.pdf');

访问文件直接产生404:

https://www.website.com/storage/uploads/1/filename.pdf

文件系统配置:

'disks' => [

    'local' => [
        'driver' => 'local',
        'root' => storage_path('app'),
    ],

    'public' => [
        'driver' => 'local',
        'root' => storage_path('app/public'),
        'url' => env('APP_URL').'/storage',
        'visibility' => 'public',
    ],

    'uploads' => [
      'driver' => 'local',
      'root'   => storage_path().'/uploads',
    ],

],

您可以使用UploadedFile提供的处理存储盘的方法来简化代码。

$file = request()->file('resume');
$file->storeAs(Auth::id(), $file->getClientOriginalName(), 'uploads');

Laravel 5.5 Docs - Requests - Storing Uploaded Files

storage/app/public 可能已链接,但 storage/uploads 未链接到 public 文件夹中,因此没有可访问的地址来获取文件。