Sonamu.getContext()
νμ¬ μ€ν μ€μΈ μμ²μ Contextλ₯Ό λ°νν©λλ€. AsyncLocalStorageλ₯Ό ν΅ν΄ κ΄λ¦¬λλ―λ‘, κ°μ μμ² μ€ν λ΄ μ΄λμλ νΈμΆν μ μμ΅λλ€.μκ·Έλμ²
λ°νκ°
- Context: νμ¬ μμ²μ Context κ°μ²΄
- ν μ€νΈ νκ²½: λΉ Context κ°μ²΄ (requestμ replyλ null)
μμΈ
- Error: Contextλ₯Ό μ°Ύμ μ μλ κ²½μ° (νλ‘λμ νκ²½μμλ§)
μ¬μ© μμ
ν¬νΌ ν¨μμμ μ¬μ©
μλΉμ€ λ μ΄μ΄μμ μ¬μ©
ν μ€νΈ νκ²½ λμ
ν μ€νΈ νκ²½μμλ Contextκ° μ£Όμ λμ§ μμλ μλ¬λ₯Ό λ°μμν€μ§ μκ³ λΉ Contextλ₯Ό λ°νν©λλ€:runWithMockContextλ₯Ό μ¬μ©νμΈμ:
νμΌ μ λ‘λ 컨ν μ€νΈ
νμΌ μ λ‘λ μμ²μμ μ λ‘λλ νμΌ μ 보λSonamu.getContext()λ₯Ό ν΅ν΄ μ κ·Όν©λλ€. @upload λ°μ½λ μ΄ν°κ° μ μ©λ λ©μλμμλ§ μ¬μ©ν μ μμ΅λλ€.
μ
λ‘λ λͺ¨λμ λ°λΌ λ κ°μ§ μμ±μ μ¬μ©ν©λλ€:
- Buffer λͺ¨λ (κΈ°λ³Έ):
bufferedFiles- λ©λͺ¨λ¦¬μ λ‘λλ νμΌ, MD5 κ³μ°/μ΄λ―Έμ§ μ²λ¦¬μ μ ν© - Stream λͺ¨λ:
uploadedFiles- μ μ₯μλ‘ μ§μ μ€νΈλ¦¬λ°λ νμΌ, λμ©λ νμΌμ μ ν©
μκ·Έλμ²
νμ
μ£Όμμ¬ν
- νμΌ μμ±μ
@uploadλ°μ½λ μ΄ν°λ₯Ό μ¬μ©ν κ²½μ°μλ§ μ€μ λ©λλ€ - Buffer λͺ¨λ(κΈ°λ³Έ)μμλ
bufferedFilesλ₯Ό, Stream λͺ¨λμμλuploadedFilesλ₯Ό μ¬μ©ν©λλ€ - λ¨μΌ νμΌ μ
λ‘λμ κ²½μ°
bufferedFiles?.[0]λλuploadedFiles?.[0]μΌλ‘ μ κ·Όν©λλ€
μ¬μ© μμ
λ¨μΌ νμΌ μ λ‘λ (Buffer λͺ¨λ)
λ€μ€ νμΌ μ λ‘λ (Buffer λͺ¨λ)
λμ©λ νμΌ μ λ‘λ (Stream λͺ¨λ)
ν¬νΌ ν¨μμμ μ¬μ©
κ΄λ ¨ νμ
BufferedFile (Buffer λͺ¨λ)
UploadedFile (Stream λͺ¨λ)
μ£Όμμ¬ν
AsyncLocalStorage μ€ν
getContext()λ AsyncLocalStorageλ₯Ό ν΅ν΄ λμνλ―λ‘, λ°λμ κ°μ λΉλκΈ° μ€ν μ€ν λ΄μμ νΈμΆν΄μΌ ν©λλ€:
@upload λ°μ½λ μ΄ν° νμ
bufferedFiles/uploadedFiles μμ±μ λ°λμ @upload λ°μ½λ μ΄ν°κ° μ μ©λ λ©μλμμλ§ μ¬μ©ν μ μμ΅λλ€: