R2 API 

1. R2 문서

R2의 소개와 버킷개념, API 사용법과 예제 및 제한사항등을 확인할 수 있습니다.

문서


2. 인증 API 토큰 생성

  1. 왼쪽메뉴에서 R2를 선택 후 화면 오른쪽에서 Manage R2 API Tokens 링크를 클릭합니다.


  2. Create Token 버튼을 누릅니다.
  3. 이름을 입력하고 권한버킷, IP접근제어, 사용기간을 지정하고 Create API Token 버튼을 누릅니다.
  4. 설정을 검토하고 Access Key ID, Secret Access Key, endpoiints 를 복사해 둡니다.
  5. 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 프로그램 다운로드 및 설치

https://s3browser.com/ 에서 프로그램을 다운로드하고 설치합니다.



5.2 Account 세팅

프로그램을 실행하면 Account 세팅하는 화면이 나옵니다.



Display name을 적절히 입력합니다.
Account TypeS3 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 대시보드에서 확인할 수 있습니다.