R2 API
1. R2 문서
R2의 소개와 버킷개념, API 사용법과 예제 및 제한사항등을 확인할 수 있습니다.
문서
2. 인증 API 토큰 생성
- 왼쪽메뉴에서 R2를 선택 후 화면 오른쪽에서 Manage R2 API Tokens 링크를 클릭합니다.

- Create Token 버튼을 누릅니다.
- 이름을 입력하고 권한과 버킷, IP접근제어, 사용기간을 지정하고 Create API Token 버튼을 누릅니다.
- 설정을 검토하고 Access Key ID, Secret Access Key, endpoiints 를 복사해 둡니다.
- Finish 버튼을 누릅니다.
문서
3. AWS CLI 사용
3.1 AWS CLI 설치
aws cli 패키지를 설치합니다.
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
$ unzip awscliv2.zip
$ cd aws
$ sudo ./install
$ aws --version
3.2 AWS CLI 설정
키와 리전을 설정합니다.
$ aws configure
AWS Access Key ID [None]: 86767dd65da4d4c5be9742b81f2826c5
AWS Secret Access Key [None]: 274fd3f1b10ee021af1ffde7f50397028875a5a85cb1665e1d47337347ced748
Default region name [None]: auto
Default output format [None]: json
Access Key ID, Secret Access Key 그리고 Default region name에는 Auto를 입력한다.
~/.aws/credentials 파일을 열어 엔드포인트를 설정합니다.
$ vi ~/.aws/credentials
[default]
aws_access_key_id = 86767dd65da4d4c5be9742b81f2826c5
aws_secret_access_key = 274fd3f1b10ee021af1ffde7f50397028875a5a85cb1665e1d47337347ced748
endpoint_url = https://a08336079ba9a713a38488c234c13092.r2.cloudflarestorage.com
3.3 AWS CLI 사용
$ aws s3 ls
2024-06-14 10:16:40 challenge
2024-07-09 13:34:50 busan
2023-07-06 13:15:22 karina-r2-test
2024-09-11 15:34:23 eyedentity
2024-10-14 17:41:04 foobar
2023-06-01 10:38:31 gnp-test-01
2023-07-05 11:42:39 winter-r2test-01
더 많은 명령어는 아래 링크에서 확인할 수 있습니다.
4. R2 API 예제(파이썬)
4.1 boto3 모듈 설치
파이썬에서 r2 버킷에 접근하기 위해서는 boto3 모듈이 필요합니다.
pip install boto3
4.2 R2 버킷 목록 보기
import boto3
import json
import pprint
# R2 엔드포인트 및 자격증명 설정
ENDPOINT_URL='https://a08336079ba9a713a38488c234c13092.r2.cloudflarestorage.com'
ACCESS_KEY_ID='86767dd65da4d4c5be9742b81f2826c5'
SECRET_ACCESS_KEY='274fd3f1b10ee021af1ffde7f50397028875a5a85cb1665e1d47337347ced748'
# 자격증명
s3 = boto3.client('s3',
endpoint_url=ENDPOINT_URL,
aws_access_key_id=ACCESS_KEY_ID,
aws_secret_access_key=SECRET_ACCESS_KEY)
# 버킷 목록 보기
response = s3.list_buckets()
pprint.pprint(response)
4.3 버킷에 파일 업로드
import boto3
# R2 엔드포인트 및 자격증명 설정
ENDPOINT_URL='https://a08336079ba9a713a38488c234c13092.r2.cloudflarestorage.com'
ACCESS_KEY_ID='86767dd65da4d4c5be9742b81f2826c5'
SECRET_ACCESS_KEY='274fd3f1b10ee021af1ffde7f50397028875a5a85cb1665e1d47337347ced748'
# 자격증명
s3 = boto3.client('s3',
endpoint_url=ENDPOINT_URL,
aws_access_key_id=ACCESS_KEY_ID,
aws_secret_access_key=SECRET_ACCESS_KEY)
# 버킷 목록 보기
response = s3.list_buckets()
#print(response['payload'])
# 파일 업로드
s3.upload_file('local_file.txt', 'payload', 'remote_file.txt')
4.4 버킷의 파일목록보기
import boto3
# R2 엔드포인트 및 자격증명 설정
ENDPOINT_URL='https://a08336079ba9a713a38488c234c13092.r2.cloudflarestorage.com'
ACCESS_KEY_ID='86767dd65da4d4c5be9742b81f2826c5'
SECRET_ACCESS_KEY='274fd3f1b10ee021af1ffde7f50397028875a5a85cb1665e1d47337347ced748'
# 자격증명
s3 = boto3.client('s3',
endpoint_url=ENDPOINT_URL,
aws_access_key_id=ACCESS_KEY_ID,
aws_secret_access_key=SECRET_ACCESS_KEY)
bucket_name = 'payload'
# 버킷 내 객체(파일) 목록 조회
response = s3.list_objects_v2(Bucket=bucket_name)
# 응답을 확인하고 파일 목록 출력
if 'Contents' in response:
for obj in response['Contents']:
print(f"파일 이름: {obj['Key']}, 크기: {obj['Size']} 바이트")
else:
print(f"'{bucket_name}' 버킷에 파일이 없습니다.")
더 많은 예제는 아래 링크에서 확인할 수 있습니다.
5. R2 클라이언트 프로그램
5.1 프로그램 다운로드 및 설치
5.2 Account 세팅
프로그램을 실행하면 Account 세팅하는 화면이 나옵니다.
Display name을 적절히 입력합니다.
Account Type은 S3 Compatible Storage 로 선택합니다.
API endpoint, Access Key ID, Secret Access Key는 위 API 인증 토근 생성과정에서 만든 것을 입력합니다.
(이 예제에서는 All buckets에 대해서 Admin Read & Write 권한으로 생성한 토큰을 사용했습니다.)
5.3 버킷리스트 확인
Add new account 버튼을 누르면 R2에 접속하게 되고 바로 버킷리스트가 보입니다.
5.3 폴더 생성 및 파일 업로드
버킷을 선택하고 New Folder 버튼으로 트리구조의 폴더를 만들 수 있습니다.
윈도우탐색기에서 Drag & Drop 으로 파일을 업로드 할 수 있습니다.
5.4 클라우드플레어 대시보드에서 파일 확인
업로드 된 파일은 Cloudflare R2 대시보드에서 확인할 수 있습니다.