ํฐ์คํ ๋ฆฌ ๋ทฐ
[โ๏ธ ์ต์ข ํ๋ก์ ํธ] supabase storage private bucket ์ฌ์ฉํด๋ณด๊ธฐ (signed url ๊ณผ ํจ๊ป...)
developer jungminji 2024. 10. 27. 01:03ํ๋ก์ ํธ์์ ๋ง์ดํ์ด์ง ๊ฐ๋ฐ์ ๋งก์๋ค. ๋ง์ดํ์ด์ง์๋ ์ ์ ์ ํ๋กํ ์ด๋ฏธ์ง๋ฅผ ๋ฑ๋กํ๋ ๊ธฐ๋ฅ์ด ์๋ค. ํ๋ก์ ํธ ์ฃผ์ ๊ฐ ํ๋ผ์ด๋นํ ๊ณต๊ฐ์์ ์ฌํ์ ๊ธฐ๋กํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ ์ ์ ํ๋กํ ์ด๋ฏธ์ง๋ ๋ณด์์ด ์ค์ํ๋ค๊ณ ์๊ฐํ๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ํ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉ ์ค์ด์ด์ ์์๋ดค๋๋ signed URL ์ ๋ง๋ค ์ ์๋ ๊ฒ์ ์ ๊ณตํ๋ค. ์ด๊ฑฐ๋ฅผ ์ฌ์ฉํ๊ธฐ๋ก ํ๋ค.
signed URL ์ด๋ ์๋ช ๋ URL ์ ์๋ฏธํ๋๋ฐ ์ฌ์ง ๋งํฌ์ ๋ง๋ฃ ์๊ฐ์ ์ค์ ํ์ฌ ํด๋น ์๊ฐ ๋์๋ง ์ ํจํ URL ์ด๋ค. signed URL ์ ์ฌ์ฉํ๋ฉด ๋งํฌ๊ฐ ๋ง๋ฃ๋๋ฉด ํด๋น ๋งํฌ์ ๋ํ ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์์ด์ ๋ณด์์ด ๊ฐํ๋๋ค.
๊ตฌ์กฐ
signed url ์ ์ฌ์ฉํ๊ธฐ ์ํด ํ๋กํ ์ด๋ฏธ์ง๋ฅผ ์ด๋ป๊ฒ ๊ด๋ฆฌํด์ผ ํ ์ง ๊ณ ๋ฏผ์ด ํ์ํ๋ค. ์๋gk๋ฉด ์ด๋ฏธ์ง ๋งํฌ๋ฅผ ๋๋น์ ๋ฃ์ด์ ์ฌ์ฉ์์ ์์ฒญ์ด ์ฌ ๋ ๊ทธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋ ๋๊ฐ์ ๋งํฌ๋ฅผ ์ฃผ๊ฒ ๋๋ฉด ๋ง๋ฃ๊ฐ ๋๋ฉด ์ฌ์ฉ์๊ฐ ๋ณธ์ธ์ด ์ฌ๋ฆฐ ํ๋กํ ์ด๋ฏธ์ง๋ ๋ชป ๋ณด๊ฒ ๋๋ ์ํฉ์ด ์ฌ ์ ์๊ฒ ๋๋ฌธ์ด๋ค.
๋ง์ดํ์ด์ง์์ ์ฌ์ฉ์์ ํ๋กํ ๊ด๋ฆฌ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ ๊ตฌ์กฐ๋ก ๋์ด ์๋ค.
- ์ฌ์ฉ์๊ฐ ํ๋กํ ์ด๋ฏธ์ง ์ ๋ก๋ → supabase private ๋ฒํท์ ์ด๋ฏธ์ง๋ช ์ ์ฅ → ์ด๋ฏธ์ง๋ช ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ
- ์ฌ์ฉ์์ ํ๋กํ ์์ฒญ → ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๋ ์ด๋ฏธ์ง๋ช ์กฐํ → ํด๋น ์ด๋ฏธ์ง๋ช ์ผ๋ก private ๋ฒํท์ ์๋ ์ด๋ฏธ์ง ๊ฐ์ ธ์ค๊ธฐ → ๊ทธ ์ด๋ฏธ์ง๋ก sugned URL ์์ฑ (๋ง๋ฃ ์๊ฐ ์ง์ ) → ํด๋ผ์ด์ธํธ์์ ์ด๋ฏธ์ง ํ์
์ด๋ ๊ฒ ํ๋ฉด public ๋ฒํท์ด ์ฌ๋ฆฐ ์ด๋ฏธ์ง์ ๋งํฌ๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํด์ ์์ฒญ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๋ ๋งํฌ๋ฅผ ์ ๋ฌํ๋ ๋ฐฉ์๋ณด๋จ ํจ์ฌ ๋ณด์์ด ๊ฐํ๋ ๊ฒ์ด๋ค.
signed url ๋ง๋๋ ๋ฐฉ๋ฒ
const { data, error } = await supabase.storage.from('๋ฒํท ์ด๋ฆ').createSignedUrl(filePath, 60);
createSignedUrl ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ์๋ต์ data ์ signed URL ์ด ์ ๊ณต๋๋ค. ๋ ๋ฒ์งธ ์ธ์๋ ์ด ๋จ์๋ก ๋ง๋ฃ ์๊ฐ์ ์ค์ ํ ์ ์๋ค.
์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๊ฐ๋จํ์ง๋ง ์ด๋ฅผ ์ด๋ค ๊ตฌ์กฐ๋ฅผ ํตํด ์ ํ์ฉํ๋ ๊ฒ์ ๊ณ ๋ฏผํด ๋ด์ผ ํ๋ ๊ฒ ๊ฐ๋ค.
'๐ฅ ํ๋ก์ ํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
- Total
- Today
- Yesterday