使用 storeAs 将文件保存在 Storage 文件夹之外

Mag*_*gas 4 laravel-5.5

我在 Laravel 中有一个存储文件的 API

$request->file("file$i")->storeAs('categories', $nameFile)
Run Code Online (Sandbox Code Playgroud)

就目前而言,它将数据正确存储在地址中

/var/www/html/apiapp/storage/app/public/categories
Run Code Online (Sandbox Code Playgroud)

但我想将这些文件保存在文件夹中

/var/archives
Run Code Online (Sandbox Code Playgroud)

因为这些文件将被另一个应用程序访问

Mag*_*gas 8

第三个参数storeAs告诉文件应该保存在哪个存储磁盘上

$path = $request->photo->storeAs('images', 'filename.jpg', 's3');
Run Code Online (Sandbox Code Playgroud)

因此,创建一个新的磁盘config/filesystem.php,并指向/var/archives

'disks' => [

    // ...

    'archive' => [
        'driver' => 'local',
        'root' => '/var/archives',
    ],

    // ...
Run Code Online (Sandbox Code Playgroud)

在代码中:

$request->file("file$i")->storeAs('categories', $nameFile, 'archive')
Run Code Online (Sandbox Code Playgroud)

确保运行网络服务器的用户也有权保存到磁盘上的该文件夹。

另一种选择是共享外部存储,例如 AWS S3。为此的配置遵循相同的想法。

我在葡萄牙语的 stackoverflow 上收到了这个答案,它运行良好