Использование storage_path из другого приложения Laravel - PullRequest
0 голосов
/ 04 февраля 2020

У меня есть приложение, которое использует два разных приложения Laravel, которые общаются с одной и той же базой данных. Приложение 1 называется BUILDER, а приложение 2 - VIEWER. В производстве я использую S3 для хранения файлов, представленных в приложении. Для локальной разработки я использую папку storage / app / publi c в BUILDER.

Локальная настройка dev заключается в том, что BUILDER работает на localhost: 8000 и VIEWER на locahost: 8001

Теперь возникает моя проблема. В производстве оба приложения используют одну и ту же корзину S3 для хранения. Так или иначе, мне нужно настроить это аналогично для местного развития.

BUILDER работает нормально, загружает и читает свои файлы из папки storage / app / publi c с FILESYSTEM_DRIVER = publi c в .env

ПРОСМОТР также хорошо читает эти файлы, создавая правильные URL-адреса после того, как я добавил новый диск в конфигурацию (BUILDER_URL установлен в .env для localhost: 8000, который является URL-адресом для BUILDER)

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

НО ... Мне нужно каким-то образом иметь возможность загружать файлы из приложения VIEWER, которые должны находиться в той же папке хранения, что и BUILDER.

Так что в моем приложении VIEWER мне бы хотелось, чтобы мой диск builder_publi c был примерно таким:

'builder_public' => [
            'driver' => 'local',
            'root' => builder_storage_path('app/public'), // here 
            'url' => env('BUILDER_URL') . '/storage',
            'visibility' => 'public',
    ],

Есть ли какой-нибудь способ разделить папку хранилища / приложения между двумя отдельными Laravel приложения?

1 Ответ

3 голосов
/ 04 февраля 2020

Да, вы можете. если вы используете сервер Linux, попробуйте команду ниже

ln -s SOURCE_FOLDER DESTINATION_FOLDER

, она создаст ярлык папки, но все равно ваше приложение будет использовать одно и то же местоположение (DESTINATION_PATH)

Если вы используя разные серверы, попробуйте команду mount.

...