1번의 API 호출로 다음 프로젝트를 위한 사용자 아바타

3981 단어 serverlessawscloudgo

서버리스 사용자 사진



오픈 소스 코드: Github
라이브 시도: userpics.devclad.com

배경?



내 앱(DevClad)에 대해 로컬에서 Dicebear 아바타를 사용했지만 Craftworks.design(무료 세트)의 더 나은 아바타 세트를 발견하고 모든 프로젝트에 사용해야 한다고 생각했습니다.

요지



간단히 말해서 Cloudflare R2 버킷을 만들고, 100개의 아바타를 업로드하고, Vercel 서버리스 기능을 사용하여 서버리스 Go 기능을 만들었습니다. 짜잔!
curl -XGET 'https://userpics.devclad.com/api/getpic'를 실행하고 임의의 사용자 아바타 URL을 즉시 가져옵니다.

왜 URL인가?



그렇다면 URL이 필요한 이유는 무엇입니까? 응답으로 직접 바이트를 스트리밍하지 않는 이유는 무엇입니까?

이 방법은 모든 사람에게 효과적입니다.

✅ 사례 1: 누군가 단순히 이미지를 삽입하고 있을 수 있습니다. 이미지의 permlink가 객관적으로 더 좋습니다.
✅ 사례 2: 자신의 S3 버킷에 저장합니다.

작동 원리



✅ 사례 1: curl -XGET 'https://userpics.devclad.com/api/getpic'✅ 사례 2: userpics.devclad.com과 함께 작동하는 Python(특히 Django용으로 조정됨)의 예

def random_avatar():
    name = str(uuid.uuid4())[:8]
    with open(f"media/avatars/{name}.png", "wb+") as f:
        url = requests.get("https://userpics.devclad.com/api/getpic")
        response = requests.get(url.text, stream=True)
        if not response.ok:
            raise Exception("Could not get avatar")
        for block in response.iter_content(1024):
            if not block:
                break
            f.write(block)
    return f"avatars/{name}.png"


그게 다야. 기능 요청 등을 자유롭게 여십시오.
레포는 여기 있습니다 - github.com/arthtyagi/serverless-userpics

좋은 웹페이지 즐겨찾기