박주니 개발 정리

S3 추가, 삭제, 업데이트 본문

라라벨

S3 추가, 삭제, 업데이트

박주니 2023. 2. 27. 12:49
728x90
반응형

1. create

  1. file('s3_image')가 의미하는 것은 프론트에서 formData로 보냈을 때 formData.append('s3_image', imageFile); 보냈을 것이고 그럼 laravel에서 api로 받아서 public function notice_create(Request $request)로 했을 때 Log::info($request);하시면 formData로 내보냈던 정보들을 확인하실 수 있습니다. 그럼 여기서 가져오고자하는 데이터는 s3_image이기 때문에 $request->file('s3_image');입니다. 
    • 주의사항) $request->s3_image;로 할 경우 파일타입을 확인할 수 없어서 null이 나올 것입니다. 꼭 file형태로 받을 경우에는 file('s3_image')로 받아주시길 바랍니다. 
    • 응용) 간혹 파일을 저장할 때 기존에 db에 저장된 것을 프론트로 내보낼 경우 파일타입으로 내보내는 것이 아닌 텍스트형식으로 내보내기 때문에 구분해서 진행하고자 할 때 null 여부에 따라 null이 아닌 경우에는 그대로 해당 db 데이터를 유지하면 되고 null인 경우에는 그 중에 file type이 있을 수 있기 때문에 그건 추가 진행으로 하시면 됩니다. 
    • if($request->input('s3_image') !== null){// 기존에 저장된 s3 data를 가지고 오는 부분}else{if(!empty($request->file('s3_image)){// s3 추가할 file 데이터}
  2. DB에 저장할 때는 주로 filePath를 저장하기 때문에 저장하고자하는 table 불러와서 save하면 됩니다. 
    • 참고사항) 2번에 대한 내용이 이해가 안된다면 laravel crud를 다시 이해하시고 접근하시는 것을 추천합니다.
  3. update 포함
$file = $request->file('s3_image');
// 파일 이름 path 지정 
$filePath = $file->getClientOriginalName();
// 새 이미지 업로드
Storage::disk('s3')->put($filePath, $file);

2. delete 

  • 단순하게 저장했던 filePath를 delete하는 것으로 이해하시면 됩니다. 
 $s3 = $request->file('s3_image');
 
 Storage::disk('s3')->delete($s3);

 

728x90
반응형
Comments