Как запретить публичный доступ к файлам в Laravel?

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

Я поместил все ссылки в auth, он сделал все ссылки, требующие доступа, прежде чем использовать его. Меня пытались получить доступ к некоторым ссылкам для создания записи. Я не могу этого сделать, и системе требуется авторизация, но когда я использую URL-адрес http://127.0.0.1:8000/storage/actions/filename.something без входа в систему для доступа к файлу изображения. Я все еще вижу файл.

Это мой маршрут

Route :: group (['prefix' => 'admin', 'middleware' => ['auth', 'administrator']], function () {

//Action
Route::get('/addAction', 'admin\ActionController@create');
Route::get('/deleteAction/{id}', 'admin\ActionController@delete');
Route::get('editAction/{id}', 'admin\ActionController@edit');
Route::post('/addAction', 'admin\ActionController@store');
Route::post('/updateAction/{id}', 'admin\ActionController@update');
Route::get('/allAction', 'admin\ActionController@index');
Route::get('/delete/actionImage/{id}', 'admin\ActionController@deleteimages');

});

Это контроллер, который я использую для хранения данных в базе данных и изображения в пути к файлу.

public function index(){
    return view('admin.allAction')
    ->with('actions',Action::all())
    ->with('challenges',Challenge::all())
    ->with('users',User::all())
    ->with('status',Status::all())
    ->with('images',Images::all());
}

public function create(){

    $users = DB::table('users')
    ->where('role','2')
    ->get();

    return view('admin.addAction')
    ->with('users', $users)
    ->with('status',Status::all());

public function store(Request $request){
    $request->validate([
        'name' => 'required|string|max:188',
        'objective' => 'string|max:888',
        'images' => 'required',
        'images.*' => 'file|image|mimes:jpeg,png,jpg|max:8000',
    ]);

    // Insert Data to Table
    $action=new Action();
    $action->name=$request->name;
    $action->objective=$request->objective;
    $action->status_id=$request->status_id;
    $action->owner_id=$request->owner_id;
    $action->challenge_id=$request->challenge_id;
    /*dd($action);*/

    $action->save();

    if ($request->hasfile('images')) {
        $images = $request->file('images');

        foreach($images as $image) {
            $name = time().'-'.$image->getClientOriginalName();
            $name = str_replace(' ','-',$name);
            /*$path =*/ $image->storeAs('actions', $name, 'public');

            Images::insert([ /*OrUpdate*/
                'name' => $name,
                'action_id' => $action->id,
              ]);
        }
     }

    Session()->flash("success", "Success!");
    return redirect('/admin/addAction');

Мой filesystem.php

'disks' => [

    'local' => [
        'driver' => 'local',
        'root' => storage_path('app'),
        'permissions' => [
            'file' => [
                'public' => 0664,
                'private' => 0600,
            ],
            'dir' => [
                'public' => 0775,
                'private' => 0700,
            ],
        ],
    ],

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

    's3' => [
        'driver' => 's3',
        'key' => env('AWS_ACCESS_KEY_ID'),
        'secret' => env('AWS_SECRET_ACCESS_KEY'),
        'region' => env('AWS_DEFAULT_REGION'),
        'bucket' => env('AWS_BUCKET'),
        'url' => env('AWS_URL'),
    ],

],

Я никогда не делаю приватные файлы, пока не знаю, как это делать. Я пытался поискать в Интернете, как это сделать, но все еще не могу сделать это возможным.

Заранее благодарю вас за все комментарии и прошу прощения за мой английский.

php artisan storage:link
Kamlesh Paul 30.03.2021 11:31

Я уже сделал это, но копирую URL-адрес для доступа к файлу. Я все еще могу получить к нему доступ.

Jill 30.03.2021 11:59

вы можете получить доступ только к каталогу public с URL-адреса, и если вы свяжете свою папку storage с общей папкой, вы можете получить доступ с URL-адреса

Kamlesh Paul 30.03.2021 12:01

Не могли бы вы дать дополнительную информацию? Я никогда раньше не делал частный файл. Что мне делать, если я хочу связать личный файл? Создать новую папку вне общей папки и сохранить файл? после этого, что мне делать с контроллером и filesystem.php в конфиге?

Jill 30.03.2021 12:04
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
4
25
0

Другие вопросы по теме