Я новичок в laravel, у меня проблема с аутентификацией пользователя с ключом доступа s3 и интеграцией структуры папок с папками Bucket s3 - PullRequest
0 голосов
/ 07 ноября 2018

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

{
   public function uploadFile()
   {
       return view('upload');
   }
   public function viewFile()
   {
       $url = 'https://s3.' . env('AWS_DEFAULT_REGION') . '.amazonaws.com/' . env('AWS_BUCKET') . '/';
       $images = [];
       $files = Storage::disk('s3')->files('images');
           foreach ($files as $file) {
               $images[] = [
                   'name' => str_replace('/images', '', $file),
                   'src' => $url . $file
               ];
           }
       return view('viewfile', compact('images'));
   }
   public function store(Request $request)
   {
       $this->validate($request, [
           'image' => 'required|max:10000'
       ]);
       if ($request->hasFile('image')) {
           $file = $request->file('image');
           $name = time() . $file->getClientOriginalName();
           $filePath = 'images/' . $name;
           Storage::disk('s3')->put($filePath, file_get_contents($file));
           
       }
       return back()->withSuccess('Image uploaded successfully');
   }
   public function destroy($image)
   {
       Storage::disk('s3')->delete('images/' . $image);
       return back()->withSuccess('Image was deleted successfully');
   }
}

и использовать следующие коды:

 public function index()
    {
        $url = 'https://s3.' . env('AWS_DEFAULT_REGION') . '.amazonaws.com/' . env('AWS_BUCKET') . '/';
       $images = [];
       $files = Storage::disk('s3')->files('images');
           foreach ($files as $file) {
               $images[] = [
                   'name' => str_replace('images/', '', $file),
                   'src' => $url . $file
                   
               ];
           }
    //    return view('viewfile');
        return view('home', compact('images'));
    }
}

Пока у меня работают функции загрузки, удаления и загрузки, но теперь я столкнулся с несколькими проблемами со структурой папок и интеграцией аутентификации пользователей с ключом доступа s3. Я читал несколько тем на других форумах, но так как я довольно нов Мне трудно реализовать то же самое с моим. Внутри корзины будет несколько папок, скажем, для маркетинга, продаж и т. Д. Итак, мои вопросы:

1) Как я могу интегрировать ключ доступа для s3 с моим именем пользователя? Чтобы при входе в систему пользователь входил с именем пользователя и паролем и ключом доступа s3, которые ему были предоставлены.

2) Когда пользователь входит в систему, я хочу, чтобы он мог создать новую папку и удалить папку. Затем внутри папки они смогут загрузить файл. Когда пользователь создаст новую папку, корзина в s3 также создаст точную папку. Как я могу создать эту структуру папок внутри laravel и интегрировать ее с моим ведром из s3?

...