ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

ํ”„๋กœ์ ํŠธ์—์„œ ๋งˆ์ดํŽ˜์ด์ง€ ๊ฐœ๋ฐœ์„ ๋งก์•˜๋‹ค. ๋งˆ์ดํŽ˜์ด์ง€์—๋Š” ์œ ์ €์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€๋ฅผ ๋“ฑ๋กํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์žˆ๋‹ค. ํ”„๋กœ์ ํŠธ ์ฃผ์ œ๊ฐ€ ํ”„๋ผ์ด๋น—ํ•œ ๊ณต๊ฐ„์—์„œ ์—ฌํ–‰์„ ๊ธฐ๋กํ•˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์œ ์ €์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€๋Š” ๋ณด์•ˆ์ด ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. 

 

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์ˆ˜ํŒŒ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉ ์ค‘์ด์–ด์„œ ์•Œ์•„๋ดค๋”๋‹ˆ 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
๋งํฌ