Постоянное хранение Dokku с Laravel дает 403 Запрещено при доступе из Интернета

Я создаю приложение с помощью 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 это доступно из браузера.

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

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]