Изменение конфигурации, используемой FlySystem в Laravel
В документации Laravel указано, что конфигурация FlySystem находится в config/filesystems.php
, Есть ли способ, которым я могу изменить, где этот файл загружен, или я могу указать, используя диск для загрузки из другой конфигурации?
Так что вместо
Storage::disk('local')->put('file.txt', 'Contents');
Что-то вроде
Storage::disk('myconfig::local')->put('file.txt', 'Contents');
2 ответа
Поддерживаются драйверы: "local", "ftp", "s3", "rackspace";
Может быть, вам нужно взглянуть на эту документацию
SRC / Осветите /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'),
],
]
Мне даже не приходило в голову, что я могу просто использовать
Config::set('filesystems.disks', $config);
Это позволяет мне устанавливать конфигурацию из любого места в коде, который я выбираю. В моем случае я использовал поставщика услуг в своем пакете и отдельный файл конфигурации.