inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[풀스택 완성] Supabase로 웹사이트 3개 클론하기 (Next.js 14)

파일제거 구현, Drag and Drop, 멀티파일 업로드 구현

getPublicUrl로 이미지 URL 받는 방법?

해결된 질문

331

Jihwaan Chun

작성한 질문수 1

0

getImageUrl을 얻는 방식을 강의 방식이 아닌 getPublicUrl을 사용해서 얻으려면 어떻게 해야 하나요?

 

 

firebase next.js tailwind-css react-query supabase

답변 1

0

로펀

Supabase의 getPublicUrl을 Next.js 14에서 사용하는 방법을 간단히 설명해드릴게요.

 

1. getPublicUrl 사용법

Supabase Storage에 저장된 파일의 공용 URL을 생성하려면, 아래처럼 getPublicUrl을 사용하면 됩니다.

export async function getPublicImageUrl(path) {

  const { data } = supabase
    .storage
    .from('your-bucket-name')  // 버킷 이름
    .getPublicUrl(path);       // 파일의 경로

  return data.publicUrl;
}

이 함수는 주어진 경로에 해당하는 파일의 공용 URL을 반환합니다. 예를 들어, images/example.png 파일의 URL을 가져올 수 있습니다.

 

2. Next.js에서 활용하기

- 서버 컴포넌트에서 이미지 URL을 미리 생성하고 렌더링할 수 있습니다:

  // app/page.js
  import { getPublicImageUrl } from './supabase-client';
  export default async function Page() {
    const imageUrl = await getPublicImageUrl('images/example.png');
    return (
      <div>
        <img src={imageUrl} alt="Example" />
      </div>
    );
  }

 

- 클라이언트 컴포넌트에서 동적으로 URL을 가져와 렌더링할 수도 있습니다:

  import { useEffect, useState } from 'react';
  import { getPublicImageUrl } from './supabase-client';
  export default function ImageComponent() {
    const [imageUrl, setImageUrl] = useState('');
    useEffect(() => {
      async function fetchImageUrl() {
        const url = await getPublicImageUrl('images/example.png');
        setImageUrl(url);
      }

      fetchImageUrl();
    }, []);

    return (
      <div>
        {imageUrl && <img src={imageUrl} alt="Example" />}
      </div>
    );
  }

 

요약

- getPublicUrl을 사용해 Supabase Storage에서 파일의 공용 URL을 가져올 수 있습니다.

- 서버 또는 클라이언트 컴포넌트에서 이 URL을 활용해 이미지를 렌더링할 수 있습니다.

 

더 궁금한 점이 있으면 편하게 말씀주세요!

Recoil 에러

0

87

1

투두 리스트 ui 작업 중에 material-tailwind가 리액트와 호환 문제가 있는지 리액트 19에서 18로 낮춰도 인풋과 아이콘 버튼 컴포넌트가 제대로 표시되지 않아요 ㅜㅜ

0

79

1

supabase 오픈 소스 사용에 대해서

0

94

0

next와 react query 버전 업데이트 관련 질문

0

75

1

Vercel 무료버전 서버속도

0

552

2

material 붉은 밑줄

0

117

2

파일 이름이 한글일 때 에러 발생

0

264

2

recoil 타입 에러

0

109

2

강의 code 올려논 github 있나요 ?

0

115

2

아니... 강의 자료가 없나요?

0

188

3

무한스크롤 기능, 검색기능 대소문자

0

107

1

smtp부분

0

92

2

모듈 에러

0

154

2

20:34초에 await이 아무 효과가 없다고 뜨는데 사용하신 이유가 궁금합니다

0

169

2

latest 버전 변경에 따른 프로젝트 설정 방식 업데이트 가능하신가요

0

158

2

개인 개발자 비즈 앱 전환 버튼이 안보여요

0

252

2

supabase에서 가입된 유저를 강제로 로그아웃 시키는 방법?

0

424

2

메세지를 전송하면 DB에는 남는데 화면에 보이지 않아요.

0

138

2

6:29 movie-card-list.tsx파일작성하시기전에

0

88

2

todolist할때 컴포넌트 분리 안했던 것 같은데...

1

140

2

vscode에서 @material-tailwind/react component를 가져왔을 때 뜨는 빨간줄 제거할 수는 없나요?

0

322

2

searchMovies에서 hasNextPage가 필요한 이유

0

139

2

react 19버전에서는 recoil사용이 어렵나요?

0

1499

2

netflix clone 할 때 recoil을 하는 순간 에러가 없어지지 않아요

2

319

3