-
Notifications
You must be signed in to change notification settings - Fork 4
CloudFlare
hyukjunkim1116 edited this page Jul 6, 2023
·
3 revisions
✔️ CloudFlare
- 사용자가 사진을 업로드 할 경우 프론트에서 backend에 1회용 url get 요청.
- backend는 cloudflare에 미리 설정해둔 id와 token을 사용하여 1회용 url post 요청후 사용자에게 넘겨준다.
- 그 후 사용자는 1회용 url로 post 요청을 통해 사진을 전송
- 전송이 성공적으로 완료되면 실제 사진을 볼 수 있는 url을 반환
- 실제 url을 backend로 post요청함으로써 db에 url(string)형태로 저장
- 이후 프론트에서 요청시 사진을 url형태로 전송
💻 code
users/views.py
class UserAvatarGetUploadURLView(APIView):
def post(self, request):
"""GetUploadURL.post
사용자가 사진을 첨부해서 클라우드플레어에 전송하기전에 먼저 일회용 업로드 url을 요청합니다.
Args:
url (str): 클라우드플레어에서 미리 지정한 일회용 url 요청 링크
one_time_url (str): post요청이 성공할 경우 클라우드플레어에서 온 response. 일회용 업로드 url을 포함하고 있습니다.
return:
result(str)): 일회용 url
"""
url = f"https://api.cloudflare.com/client/v4/accounts/{settings.CF_ID}/images/v2/direct_upload"
one_time_url = requests.post(
url,
headers={
"Authorization": f"Bearer {settings.CF_TOKEN}",
},
)
one_time_url = one_time_url.json()
result = one_time_url.get("result")
return Response(result)
📷 View