[Laravel] putFileAs 사용해서 s3에 파일 업로드 하기

florentyoon·2021년 6월 1일
0

Laravel

목록 보기
7/12

1. putFileAs란?

FilesystemAdapter는 laravel에서 제공하는 파일 관련 함수 모음이다.
그 중 putFileAs 는 말 그대로 디스크에 파일을 저장할 수 있다.

2. 사용하기

이걸 이용해서 aws의 s3버킷에 파일을 저장할 수 있다. 필요한 파라미터는 총 3가지+옵션(접근권한)

    $s3Res = Storage::disk('s3')->putFileAs($path, $localpath, $name, 'public');

앞에 Storage::disk('s3')은 내가 지정한 s3 버킷의 이름이기 때문에 사용자마다 다를 수 있다.

이 부분을 지정하려면 config/filesystems.php에서 'disk'의 내용을 고치거나 추가하면 된다.

'disks' => [

        'local' => [
            'driver' => 'local',
            'root' => storage_path('app'),
        ],

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

$path는 저장할 폴더 경로와 같다. 예를 들면 s3의 위치가 C://이고 $path = 'image'; $name은 '다람쥐.jpg' 라면

C://image/다람쥐.jpg

이렇게 저장된다.
그럼 당연히 두 번째 인자인 $localpath는 저장할 파일이 있는 경로가 되겠다.
경로가 틀리면 절대 저장되지 않으니 반드시 옳은 경로인지 확인하자.
또한 putFileAs를 들여다 보면 파일이 아닌 경우 문제가 된다. 정상적인 이미지 또는 문서 등의 파일이 맞는지 먼저 확인하자.

3. 옵션

마지막으로 뒤에 붙은 'public'은 이 업로드한 파일의 권한을 의미한다. public은 누구나 볼 수 있는 것을 의미한다.

profile
florentyoon의 IT 세상

0개의 댓글