πŸ“ μ„œλ²„μ— μ—…λ‘œλ“œλœ 이미지 λ°±μ—… ( 포인티 λ””μžμΈ μ‹œμŠ€ν…œ ν”„λ‘œμ νŠΈ )

10_2pangΒ·2023λ…„ 7μ›” 23일
0

βš½οΈνŠΈλŸ¬λΈ”μŠˆνŒ…

λͺ©λ‘ 보기
77/94
post-thumbnail

πŸ‘¨β€πŸ’»Β μ‚¬κ±΄


κ³Όμ—° μ΄λ ‡κ²Œ μ„œλ²„λ₯Ό λ°°ν¬ν•˜κ³  λ‚˜μ€‘μ— 재배포λ₯Ό ν• κ²½μš° 이미지λ₯Ό μ–΄λ–»κ²Œ λ°±μ—…ν•˜κ³  κ΄€λ¦¬ν•˜λŠ”μ§€ 고민에 λΉ μ‘Œλ‹€.

Gpt 녀석은 μ•„λž˜μ™€ 같은 ν•΄κ²°λ°©μ•ˆμ„ μ œμ‹œν•΄μ£Όμ—ˆλ‹€.

  1. ν΄λΌμš°λ“œ μŠ€ν† λ¦¬μ§€ μ„œλΉ„μŠ€: AWS S3, Google Cloud Storage, Azure Blob Storage λ“±μ˜ ν΄λΌμš°λ“œ μŠ€ν† λ¦¬μ§€ μ„œλΉ„μŠ€λ₯Ό μ‚¬μš©ν•˜μ—¬ νŒŒμΌμ„ λ°±μ—…ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ μ„œλΉ„μŠ€λ“€μ€ λŒ€μš©λŸ‰μ˜ 데이터λ₯Ό μ €μž₯ν•˜κ³  κ΄€λ¦¬ν•˜κΈ° μœ„ν•΄ μ„€κ³„λ˜μ—ˆμœΌλ―€λ‘œ μ•ˆμ •μ μ΄λ©° ν™•μž₯성이 μ’‹μŠ΅λ‹ˆλ‹€.

  2. μ „μš© λ°±μ—… μ„œλΉ„μŠ€: Backblaze B2, CrashPlan, Carbonite λ“±μ˜ μ „μš© λ°±μ—… μ„œλΉ„μŠ€λ₯Ό μ‚¬μš©ν•˜μ—¬ μ„œλ²„μ˜ νŒŒμΌμ„ 주기적으둜 λ°±μ—…ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  3. FTP/SFTP: FTP λ˜λŠ” SFTPλ₯Ό μ‚¬μš©ν•˜μ—¬ λ‹€λ₯Έ μ„œλ²„λ‚˜ μ €μž₯μ†Œμ— νŒŒμΌμ„ μ „μ†‘ν•˜μ—¬ λ°±μ—…ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  4. 둜컬 λ°±μ—…: μ„œλ²„μ—μ„œ 직접 μ—…λ‘œλ“œλœ νŒŒμΌμ„ 둜컬 μ‹œμŠ€ν…œμœΌλ‘œ λ³΅μ‚¬ν•˜μ—¬ λ°±μ—…ν•©λ‹ˆλ‹€. 이 방법은 μˆ˜λ™μœΌλ‘œ μˆ˜ν–‰λ  μˆ˜λ„ 있고, μžλ™ν™” 슀크립트λ₯Ό μ‚¬μš©ν•˜μ—¬ 주기적으둜 μˆ˜ν–‰λ  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

  5. λ°μ΄ν„°λ² μ΄μŠ€ μŠ€λƒ…μƒ·: 파일 외에도 λ°μ΄ν„°λ² μ΄μŠ€μ˜ 정보λ₯Ό λ°±μ—…ν•΄μ•Ό ν•˜λŠ” 경우, λ°μ΄ν„°λ² μ΄μŠ€μ˜ μŠ€λƒ…μƒ· κΈ°λŠ₯을 μ‚¬μš©ν•˜μ—¬ 백업을 μƒμ„±ν•˜κ³  μ €μž₯ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  6. 버전 관리 μ‹œμŠ€ν…œ: Gitκ³Ό 같은 버전 관리 μ‹œμŠ€ν…œμ„ μ‚¬μš©ν•˜μ—¬ μ—…λ‘œλ“œλœ 파일의 λ³€κ²½ 내역을 μΆ”μ ν•˜κ³  λ°±μ—…ν•  수 μžˆμŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ 이 방법은 λŒ€μš©λŸ‰ νŒŒμΌμ—λŠ” μ ν•©ν•˜μ§€ μ•Šμ„ 수 μžˆμŠ΅λ‹ˆλ‹€.

μ—¬κΈ°μ„œ 1λ²ˆμ„ μƒκ°ν•˜κΈ΄ ν–ˆμœΌλ‚˜, 그러면 μ§„μž‘ GCS 에 이미지λ₯Ό μ €μž₯ν•˜μ—¬ λΆˆλŸ¬μ„œ μ‚¬μš©ν–ˆμ„κ²ƒμ΄λ‹€. κ·ΈλŸ¬λ‹€ μƒκ°ν•œκ²ƒμ΄, μ›μ‹œμ μΌμ§€λŠ” λͺ¨λ₯΄μ§€λ§Œ κ΅°λŒ€μ—μ„œ λΌμš°ν„° λ°±μ—…νŒŒμΌμ„ μ €μž₯ν•˜λŠ” μž‘μ—…μ΄ 생각났닀. κ·Έλƒ₯ μ „μ²΄νŒŒμΌμ„ λ³΅μ‚¬ν•΄μ„œ λΆ™μ—¬λ„£λŠ”κ²ƒμ΄λ‹€.

βœ…Β ν•΄κ²°


κ²°κ³Όμ μœΌλ‘œλŠ” μ›μ‹œμ μœΌλ‘œ ν•΄κ²°ν•˜μ˜€λ‹€.
일주일에 ν•œλ²ˆμ”© uploads 폴더λ₯Ό λ°±μ—…ν•˜λŠ” 방식을 νƒν•˜μ˜€λ‹€.
그러기 μœ„ν•΄μ„œ μ•„μΉ΄μ΄λΈŒ 라이브러리λ₯Ό μ‚¬μš©ν•΄μ„œ, uploads 폴더λ₯Ό 전체λ₯Ό λ‹€μš΄λ°›μ„μˆ˜ μžˆλŠ” 링크λ₯Ό κ±Έμ–΄μ£Όμ—ˆλ‹€.

// 이미지 λ‹€μš΄λ‘œλ“œ
app.get("/download-uploads", ensureAdmin, (req, res, next) => {
  const archive = archiver("zip", {
    zlib: { level: 9 }, // μ••μΆ• μˆ˜μ€€ μ„€μ •
  });

  const output = res;
  output.attachment("uploads.zip"); // λΈŒλΌμš°μ €μ—μ„œ λ‹€μš΄λ‘œλ“œν•  파일 이름 μ„€μ •

  archive.pipe(output);

  archive.directory(path.join(__dirname, "uploads"), false);

  archive.finalize();

  archive.on("error", (err) => {
    next(err);
  });
});

πŸ’­Β κ°œμ„ 


  • λ‹€μŒμ— μ‚¬μ΄λ“œ ν”„λ‘œμ νŠΈμ—μ„œλŠ” ꡬ글 μŠ€ν† λ¦¬μ§€λ₯Ό μ‚¬μš©ν•΄λ³΄λ„λ‘ ν•΄μ•Όκ² λ‹€. 아직은 흐름도 잘 λͺ¨λ₯΄κΈ°λ•Œλ¬Έμ— 일단 ν• μˆ˜μžˆλŠ” 방법은 μ „λΆ€ μ‹œλ„ν•΄ 보도둝,,,
profile
μ£Όλ‹ˆμ–΄ ν”„λ‘ νŠΈμ—”λ“œ 개발자 이광렬 μž…λ‹ˆλ‹€ 🌸

0개의 λŒ“κΈ€