κ³°ν°λ·° μλΉμ€μμ IDrive e2λ₯Ό μ¬μ©ν λ‘μ§μ λν΄ μ€λͺ ν κΈμ λλ€.
μ§λ 1νΈμμ κ³°ν°λ·°μ λν κ°λ¨ν μ€λͺ κ³Ό κ³°ν°λ·°μμ Object Storageλ‘ μ IDrive e2λ₯Ό μ¬μ©νκ² λμλμ§ ν¬μ€ν μ νμλ€. μ΄λ²μλ κ·ΈλΌ IDrive e2λ₯Ό μ¬μ©νμ¬ μ΄λ€ λ°©μμΌλ‘ λΉλμ€λ₯Ό μ μ₯νκ³ μ‘°ννλμ§ μ΄ν΄λ³΄κ² λ€.
λ¨Όμ λΉλμ€ μ μ₯ λ‘μ§μ κ°λ¨νκ² κ·Έλ¦ΌμΌλ‘ μ΄ν΄λ³΄μ.
λ€μκ³Ό κ°μ 3κ°μ§ κ³Όμ μ ν΅ν΄ λΉλμ€λ₯Ό μλ²μ μ μ₯ν μ μλ€.
1. Pre-Signed URL λ°κΈ
μ°μ Pre-Signed URLμ΄ λ¬΄μμΈμ§ λ¨Όμ μμλ νμκ° μλ€. Pre-Signed URLμ μΉ μλΉμ€μμ λ§μ΄ μ¬μ©λλ 보μ κΈ°μ μ€ νλλ‘, AWS S3μ κ°μ κ°μ²΄ μ€ν λ¦¬μ§ μλΉμ€μμ μ¬μ©λλ κ°λ μ€ νλμ΄λ€. μλ² μΈ‘μμ ν΄λΌμ΄μΈνΈκ° νΉμ 리μμ€μ μ§μ μ κ·Όν μ μλ URLμ μμ±νλ λ°©μμΌλ‘, μλ²μμ μ μν κΆν(Read, Write λ±)κ³Ό λ§λ£ μκ°μ΄ ν¬ν¨λμ΄ μλ€. μλ²κ±° μ€μ λ‘ νμΌμ μ μ‘νμ§ μκ³ λ ν΄λΌμ΄μΈνΈμκ² μμ ν λ°©λ²μΌλ‘ νμΌμ μ κ·Όν μ μκ² νκΈ°μ 보μ μΈ‘λ©΄μμ λ§€μ° μ μ©νλ€. κ³°ν°λ·°μμλ λ€μκ³Ό κ°μ μ΄μ λ‘ Pre-Signed URLμ ν΄λΌμ΄μΈνΈμ λ°κΈν΄μ£Όμ΄ IDriveμ λ©΄μ μμμ μ λ‘λ νλλ‘ κ²°μ νμλ€.
κ·Έλ κΈ°μ ν΄λΌμ΄μΈνΈμ Pre-Signed URLμ λ°ννκ³ , μ΄λ₯Ό μ¬μ©ν΄ ν΄λΌμ΄μΈνΈμμ λΉλμ€λ₯Ό μ λ‘λ νλλ‘ κ΅¬ννμ¬ μλ²μ λΆλ΄κ³Ό μλΉλλ λΉμ©μ μ΅λν μ€μ΄κΈ° μν΄ λ Έλ ₯νμλ€.
2. Pre-Signed URLμ μ¬μ©ν λΉλμ€ μ μ₯
1λ²μμ ꡬνν Pre-Signed URL λ°κΈ λ‘μ§μ μ¬μ©νμ¬ ν΄λΌμ΄μΈνΈμμ IDriveμ λ°λ‘ μμμ μ
λ‘λνλ€.
HTTP Bodyμ binary ννλ‘ μμμ λ΄μ PUT λ©μλλ‘ Pre-Signed URLμ μμ²μ 보λ΄λ©΄ κ°λ¨νκ² IDrive μλ²μ λμμμ΄ μ
λ‘λκ° λλ€.
3. λΉλμ€ μ λ‘λ μλ£ ν μλ²μ λΉλμ€ μ 보 μ μ₯
ν΄λΌμ΄μΈνΈ μΈ‘μμ λΉλμ€κ° IDriveμ μ μ₯λ¨μ νμΈν ν IDriveμ μ μ₯λ λΉλμ€μ URL, νμΌ μ΄λ¦ λ±μ ν¬ν¨νμ¬ μλ²μ μμ²μ 보λ΄λ©΄ DBμ λΉλμ€μ μ 보λ₯Ό μ μ₯νλ€.
κ·Έλ¦¬κ³ μ΄ν λΉλμ€ μ‘°ν μμλ DBμ μ μ₯λ λΉλμ€μ μ 보λ₯Ό μ¬μ©ν΄μ IDriveμ μ κ·Όν νμμμ΄ κ°λ¨νκ² μ μ₯ν λΉλμ€λ₯Ό μμ²ν μ μλ€.
μ μ₯ν λΉλμ€λ₯Ό λ€μ 보λ, μ¦ μ‘°ννλ λ‘μ§λ μλΉμ€μμ νμμ μ΄λ€.
κ³°ν°λ·°μμ μ 곡νλ λΉλμ€ μ‘°ν λ°©μμλ μλμ κ°μ΄ λ κ°μ§κ° μλ€. κ° μ‘°ν λ°©μμ λ‘μ§μ μ€λͺ
ν΄λ³΄κ² λ€.
λ¨Όμ μμ μ λΉκ³΅κ° λΉλμ€λ₯Ό νμΈνλ λ‘μ§μ κ°λ¨νκ² κ·Έλ¦ΌμΌλ‘ μ΄ν΄λ³΄μ. κ°μΈ λΉλμ€ μ‘°ν λ‘μ§μλ μλμ κ°μ λ κ°μ§ κ²½μ°κ° μλ€.
1. μμ μ λΉλμ€ μ 체 μ‘°ν
μμ μ λΉλμ€λ€μ ν λ²μ μ 체μ μΌλ‘ μ‘°νν μ μλλ‘ κ΅¬ννμλ€. μλ²μμ λ°κΈλ°μ μΏ ν€μμ νμ μ 보λ₯Ό μΆμΆνκ³ μΆμΆν idλ₯Ό ν λλ‘ κ·Έ νμμ λͺ¨λ λΉλμ€λ₯Ό μ‘°ννλλ‘ κ΅¬ννμλ€.
2. λ¨μΌ λΉλμ€ μ‘°ν
DBμ μ μ₯λ videoμ idλ₯Ό κΈ°λ°μΌλ‘ μ‘°ννλ κ²μ΄κΈ°μ λ‘μ§μ΄ μ΄λ ΅μ§ μμλ€. λ€λ§ μΏ ν€λ₯Ό κΈ°λ°μΌλ‘ νμ μ 보λ₯Ό μΆμΆνκ³ , λ½μλΈ νμ μ 보λ₯Ό κΈ°λ°μΌλ‘ λΉλμ€μ μ€μ 촬μμμΈμ§ νμΈνλ λ‘μ§μ΄ μ‘°κΈ λ³΅μ‘νμλ€.
νΉν ν
μ€νΈ μ§ν μμ μ΄μ λν κ²½μ°λ₯Ό ν
μ€νΈ νλ κ²μ μ΄λ €μμ κ²ͺμλ€.
λ€μμΌλ‘ νμΈμ κ³΅κ° λΉλμ€λ₯Ό μ‘°ννλ λ‘μ§μ κ·Έλ¦ΌμΌλ‘ κ°λ¨νκ² μ΄ν΄λ³΄μ. Public λΉλμ€ μ‘°ν ꡬνμ μν΄μλ λ€μ λ κ°μ§ κ²½μ°λ₯Ό ꡬνν΄μΌνλ€.
1. λΉλμ€ PublicμΌλ‘ μ ν
λΉλμ€λ₯Ό PublicμΌλ‘ λ³ννκ³ , PublicμΌλ‘ λ³νλ λΉλμ€μ URLμ μνΈννμ¬ {ν΄μκ°:μ€μ URL}μ νμμΌλ‘ Redisμ μ μ₯νλλ‘ νμλ€.
μνλ₯Ό μ ννλ €λ λΉλμ€κ° μ€μ 촬μμμ μμ²μ μν΄ μ νλλμ§ νμΈνλ κ³Όμ μ λ°λμ κ±°μΉκ² νλ€.
μ΄λ₯Ό ν΅κ³Όνλ€λ©΄ ν΄μκ°κ³Ό μ€μ URLμ Redisμ μ μ₯νκ³ , μ€μ URL μ 보λ₯Ό ν λλ‘ ν΄λΉ λΉλμ€κ° Public μνμΈμ§ μ‘°νν μ μλλ‘ νμλ€.
2. λΉλμ€ ν΄μκ°μ μ¬μ©ν λΉλμ€ μμΈ μ 보 λ°ν
λΉλμ€ ν΄μκ°μ μ¬μ©ν λΉλμ€ μμΈ μ 보 λ°ν κΈ°λ₯μ ꡬννκΈ° μν΄, μ΄μ μ μ¬μ©νμλ Redis μ¬μ© λ‘μ§μ μ¬μ©νμλ€.
λΉλμ€ ν΄μκ°μ΄ μμ²μΌλ‘ λ€μ΄μ€λ©΄ ν΄λΉ ν΄μκ°μ 볡νΈννμ¬ μ€μ URLμ μμλ΄κ³ , μ€μ URLμ΄ PublicμΈμ§ PrivateμΈμ§ νμΈνμ¬ λΉλμ€ μμΈ μ 보 λ°νμ μ¬μ©ν μ μλλ‘ νμλ€.
λ€μ ν¬μ€ν μμλ AWS SDK for JavaScriptλ₯Ό νμ©ν μ€μ μ λ‘λ λ‘μ§μ λΈλ‘κΉ νλλ‘ νκ² λ€.