Постоянное хранение Dokku с Laravel дает 403 Запрещено при доступе из Интернета - PullRequest
0 голосов
/ 05 декабря 2018

Я создаю приложение с помощью Laravel и загружаю его на VPS с помощью Dokku.Все работает нормально.Приложение хранит изображения в каталоге хранилища, используя локальный «дисковый» драйвер, и использует собственные методы, доступные в Laravel.Из-за изменчивой природы контейнеров мне нужно было настроить постоянное хранилище и выполнить следующие действия: http://dokku.viewdocs.io/dokku~v0.13.1/advanced-usage/persistent-storage/

Я использую этот код ниже в Laravel для загрузки загруженных пользователями изображений.Это своего рода приложение CMS, поэтому сохранение в том же имени файла, которое мы получаем от пользователя (что-то похожее на WordPress).Вот код:

public function saveToDisk( UploadedFile $file ){

    $storage = Storage::disk();
    $storageDir = static::storageDir();

    $extention = $file->getClientOriginalExtension();

    $extensionLength = mb_strlen( $extention );
    $filename = substr( $file->getClientOriginalName(), 0, -( $extensionLength > 0 ? $extensionLength + 1 : 0 ) );

    $try = 0;
    $maxTry = 5;
    $suffix = '';

    while( $try < $maxTry ){

        $expectedFilename = "$filename$suffix.$extention";
        $expectedPath = $storageDir['dir'] . '/' . $expectedFilename;

        if( !$storage->exists( $expectedPath ) ){
            $file->storePubliclyAs( $storageDir['dir'], $expectedFilename );
            $storageDir['title'] = "$filename$suffix";
            $storageDir['filename'] = $expectedFilename;
            return $storageDir;
        }

        $try++;
        $suffix = "-$try";
    }

    return false;

}


public static function storageDir(){

    $today = Carbon::today();
    $baseDir = 'public/uploads';

    return [
        'dir' => "$baseDir/$today->year/$today->month",
        'base' => $baseDir,
        'year' => $today->year,
        'month' => $today->month,
    ];
}

Файл загружается хорошо, но основная проблема с разрешением.Как указано в ссылке выше, я уже изменил разрешение для каталога загрузки.Но после загрузки файла файл имеет:

-rw-r--r-- 1 herokuishuser herokuishuser 152434 Dec  5 13:22 Ferry_Font5.jpg

И это пять 403 Запрещено , когда я пытаюсь получить доступ к файлу в браузере.

Но когда я изменил егос chmod 777 это доступно из браузера.

Пожалуйста, помогите мне решить эту проблему, если вам нужна дополнительная информация, просто спросите.Также, пожалуйста, объясните, если я делаю что-то не так.

...