라라벨에서 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' 으로 옵션을 주면 된다.
반응형
'Laravel' 카테고리의 다른 글
[Laravel] DB Replication 사용시 읽기/쓰기 복제 지연 현상 (0) | 2023.12.20 |
---|---|
[Laravel] 파일 생성 시 권한 생성 (0) | 2023.03.02 |
[Redis] Laravel 에서 Redis Expire 설정하기 (0) | 2023.01.16 |
[Laravel] Console Command Argument 옵션 (0) | 2023.01.03 |
[Laravel] From Subquery 작성방법 (0) | 2022.12.13 |