Laravel — Настройка общего хранилища для промежуточного и производственного развертывания

Я взял на себя проект Laravel, который был развернут уже некоторое время и использует отдельные папки для хранения файлов, которые загружаются на соответствующие веб-сайты. Мой опыт работы с Laravel ограничен. Теперь я хочу использовать одно место для хранения файлов как для промежуточных, так и для рабочих веб-сайтов Laravel, чтобы уменьшить объем хранилища, занимаемый дубликатами файлов.

Мне удалось настроить Staging для сохранения файлов в папку хранения Productions. Проблема, с которой я столкнулся сейчас, заключается в том, что компонент <input>, который мы используем для загрузки файлов, пытается получить эти файлы для предварительного просмотра из папки хранилища Stagings вместо Productions.

Что я могу сделать, чтобы компонент <input> исходил из файла для предварительного просмотра из правильного места (хранилище Productions), а не из папки хранилища Stagings?

Я исследовал символические ссылки с целью связать папку хранения Stagings с общей папкой Productions и отказался от этого, поскольку он позволяет связывать только одну папку за раз.

Как упоминалось ранее, я последовательно настроил путь загрузки для использования папки хранилища Productions в config/filesystems.php, но мне не удалось найти метод установки источника компонента <input>, чтобы он использовал правильный URL-адрес для предварительного просмотра файла, который ему присвоено.

Обновлена ​​ссылка на путь к хранилищу.

файловые системы.php

'public' => [
    'driver' => 'local',
    'root' => storage_path('../../mywebsite.com/storage/app/public'),
    'url' => 'https://mywebsite.com/storage',
    'visibility' => 'public',
],

Как создается путь к изображению

FileUploadController.php

$filePath = Storage::url($request->file($file)->storeAs('/', Carbon::now()->timestamp . $request->file($file)->hashName(), 'public'));

Я не уверен, какой другой код может быть здесь полезен, не стесняйтесь спрашивать, и я сделаю все возможное, чтобы предоставить его.

Я ожидал, что компонент <input> будет получать URL-адрес файла в зависимости от того, где файл хранится для отображения для предварительного просмотра. Но похоже, что путь к файлу начинается с /storage/my-file-here.jpeg и объединяется с URL-адресом промежуточных веб-сайтов перед заполнением источника для компонента <input>.


person Tony Cowling    schedule 05.07.2019    source источник
comment
но мне не удалось найти способ установки источника компонента, чтобы он использовал правильное место хранения. можно поподробнее об этой части?   -  person mrhn    schedule 05.07.2019
comment
После повторного прочтения этой части я понимаю, что она была сформулирована плохо, я обновил этот раздел следующим образом: но я не смог найти метод установки источника компонента <input>, чтобы он использовал правильный URL-адрес. для предварительного просмотра назначенного ему файла.   -  person Tony Cowling    schedule 08.07.2019


Ответы (1)


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

Решение заключалось в настройке символической ссылки из хранилища/приложения/общедоступной папки промежуточных сайтов, чтобы она указывала на хранилище/приложение/общедоступную папку рабочих сайтов.

person Tony Cowling    schedule 30.10.2019