【问题标题】:Change config FlySystem uses in Laravel更改 FlySystem 在 Laravel 中使用的配置
【发布时间】:2017-06-09 20:41:56
【问题描述】:

Laravel 文档指出 FlySystem 配置位于 config/filesystems.php。有没有办法可以更改此文件的加载位置,或者我可以在使用磁盘从不同配置加载时声明?

所以不是

Storage::disk('local')->put('file.txt', 'Contents');

类似

 Storage::disk('myconfig::local')->put('file.txt', 'Contents');

【问题讨论】:

    标签: laravel flysystem


    【解决方案1】:

    它支持的驱动程序:“local”、“ftp”、“s3”、“rackspace”;

    也许你需要看看这个文档

    src/Illuminate/Filesystem/FilesystemManager.php#L70


    /**
     * Get the filesystem connection configuration.
     *
     * @param  string  $name
     * @return array
     */
    protected function getConfig($name)
    {
        return $this->app['config']["filesystems.disks.{$name}"];
    }
    

    '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_KEY'),
                'secret' => env('AWS_SECRET'),
                'region' => env('AWS_REGION'),
                'bucket' => env('AWS_BUCKET'),
            ],
    
        ]
    

    【讨论】:

    • 是的,我已经看过了,我可以使用 createLocalDriver($config) 并将我自己的配置传递给它,但是如果我将来需要更改驱动程序,这会受到限制
    【解决方案2】:

    我从来没有想过我可以简单地使用

    Config::set('filesystems.disks', $config);
    

    这允许我在我选择的代码中的任何位置设置配置。在我的例子中,我在我的包中使用了服务提供者和一个单独的配置文件。

    【讨论】:

      猜你喜欢
      • 2017-07-18
      • 1970-01-01
      • 2016-10-05
      • 1970-01-01
      • 2017-12-30
      • 2020-11-29
      • 1970-01-01
      • 2018-05-20
      • 1970-01-01
      相关资源
      最近更新 更多