스터디/Etc

Cloudflare r2 aws-sdk s3로 업로드

Dalmangyi 2024. 10. 25. 16:28

클플의 r2로 업로드 할때, 

api를 직접 구현하면 힘드니까 aws s3의 sdk를 이용하면 편리합니다.

 

약간 다른게 있다면, region이 "auto"여야 된다는점.

credentials에 accessKeyId, secretAccessKey 말고도,

endpoint를 설정해야 됩니다.

 

코드로 하면 아래처럼 됩니다.

this.s3Client = new S3Client({
    endpoint: appConfigType.r2.endPoint,
    credentials: {
        accessKeyId: appConfigType.r2.accessKeyId,
        secretAccessKey: appConfigType.r2.secretAccessKey,
    },
    region: appConfigType.r2.region,
});

 

endpoint는 "https://{클라우드플레어 계정 ID}.r2.cloudflarestorage.com" 과 같은 형태로 됩니다.

accessKeyId과 secretAccessKey는 특정 규칙을 가진 String입니다.

region은 "auto"로 고정하시면 됩니다.

 

 

클라우드플레어의 "R2 개체 저장 공간 > 개요 > 오른쪽 패널 > 계정 세부 정보"로 들어가면

적혀있는 "계정 ID"를 확인해서 endpoint를 작성하시면 됩니다. (당연히 중괄호{}는 빼야겠죠)

 

accessKeyId하고 secretAccessKey는

"클라우드플레어의 "R2 개체 저장 공간 > 개요 > 오른쪽 패널 > 계정 세부 정보" 밑에 있는 

"R2 API 토큰 관리" 를 통해서 직접 토큰을 만들면

엑세스 키 ID(AccessKeyId), 비밀 엑세스 키(SecretAccessKey)를 발급 받을 수 있습니다.

아! 여기 보니 Endpoint도 알려주네요.

 

토큰을 만들면 비밀번호를 1회 알려주고 그 다음엔 안 알려주니 잘 적어두시기 바랍니다.