Привет, ребята, я довольно новичок в 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?