Laravel
[Laravel] NCLOUD Object Storage(S3) 업로드
먹세
2023. 6. 9. 10:47
라라벨에서 NCLOUD Object Storage로 파일 업로드 하기
1. s3 라이브러리 설치
composer require league/flysystem-aws-s3-v3
2. env 세팅
# NCLOUD Object Storage
NCLOUD_ACCESS_KEY_ID=sdfosdijf...
NCLOUD_SECRET_ACCESS_KEY=dijsfid...
NCLOUD_DEFAULT_REGION=kr-standard
NCLOUD_BUCKET=my_bucket
NCLOUD_ENDPOINT=https://kr.object.ncloudstorage.com
3. filesystems.php 세팅
// ncloud 세팅
'ncloud' => [
'driver' => 's3',
'key' => env('NCLOUD_ACCESS_KEY_ID'),
'secret' => env('NCLOUD_SECRET_ACCESS_KEY'),
'region' => env('NCLOUD_DEFAULT_REGION'),
'bucket' => env('NCLOUD_BUCKET'),
'endpoint' => env('NCLOUD_ENDPOINT'),
],
// s3 세팅
'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'),
],
s3 세팅과 동일하지만 ncloud에서는 url 을 endpoint 로 대체해야 정상동작 함.
4. 코드테스트
try {
Storage::disk('ncloud')->put('uploaded_file_name.mp3', file_get_contents($myfile));
// 파일을 public 권한으로 올리기
Storage::disk('ncloud')->put('uploaded_file_name.mp3', file_get_contents($myfile), 'public');
} catch (\Exception $exception) {
Log::channel('err')->error($exception);
}
설정한 ncloud disk로 접근해서 put 메소드로 업로드할 이름을 적어주고, 뒤에는 실제로 업로드할 파일을 선택해준다.
올릴 파일에 권한을 주고 싶은 경우는 'public' 으로 옵션을 주면 된다.
반응형