파일 처리 — Google Drive, Dropbox, FTP 노드

파일 처리 — Google Drive, Dropbox, FTP 노드

n8n에서 파일을 다루려면 Binary Data라는 개념을 알아야 한다. 이것만 이해하면 파일 업로드, 다운로드, 변환이 자유자재가 된다.

Binary Data 개념

n8n의 아이템은 두 종류의 데이터를 가진다:

{
  "json": { "name": "보고서", "date": "2026-04-26" },
  "binary": {
    "data": {
      "fileName": "report.pdf",
      "mimeType": "application/pdf",
      "fileSize": "1.2 MB",
      "data": "(base64 encoded content)"
    }
  }
}
필드 용도 예시
json 텍스트 데이터 이름, 이메일, 숫자 등
binary 파일 데이터 PDF, 이미지, CSV, Excel 등

Binary 데이터에 접근하는 Expression:

{{ $binary.data.fileName }}     // 파일명
{{ $binary.data.mimeType }}     // MIME 타입
{{ $binary.data.fileSize }}     // 파일 크기

Google Drive 노드

파일 업로드

Resource: File
Operation: Upload
File Name: {{ $json.fileName }}
Parents: (폴더 ID 또는 이름)
Binary Property: data  (바이너리 필드명)

파일 다운로드

Resource: File
Operation: Download
File ID: {{ $json.fileId }}

다운로드된 파일은 binary 필드에 저장되어 다음 노드에서 사용할 수 있다.

폴더 관리

Resource: Folder
Operations:
  - Create: 폴더 생성
  - List: 하위 항목 목록
  - Share: 공유 설정

파일 검색

Resource: File
Operation: List
Query: name contains 'report' and mimeType = 'application/pdf'

파일 변환 노드

Convert to File — JSON/CSV/Excel 파일 생성

n8n 데이터를 파일로 변환한다.

Operation: Convert to CSV
Binary Property: data (출력할 바이너리 필드명)

지원 형식:

형식 용도
CSV 스프레드시트 호환
JSON 구조화된 데이터
Excel (XLSX) 비즈니스 보고서
HTML 웹 테이블
ICS 캘린더 이벤트

Extract From File — 파일에서 데이터 추출

파일을 n8n 아이템으로 변환한다.

Operation: Extract From CSV
Binary Property: data  (입력 바이너리 필드명)
Header Row: true

실전 흐름

[HTTP: CSV 다운로드] → [Extract From CSV] → [처리] → [Convert to XLSX] → [Gmail: 첨부 전송]

Read/Write Binary File

로컬 파일 시스템의 파일을 직접 읽고 쓸 수 있다. (셀프호스팅 환경에서만)

파일 읽기

Operation: Read
File Path: /data/imports/users.csv

파일 쓰기

Operation: Write
File Path: /data/exports/result.json
Binary Property: data

⚠️ 보안 주의: Docker 환경에서는 볼륨으로 마운트된 경로만 접근 가능하다. 시스템 파일에 접근하지 않도록 주의하자.


FTP / SFTP 노드

원격 서버의 파일을 다룰 때 사용한다.

Credential 설정

Host: ftp.example.com
Port: 22 (SFTP) / 21 (FTP)
Username: ftpuser
Password: ********
Private Key: (SFTP 키 인증 시)

주요 동작

동작 설명
Download 파일 다운로드
Upload 파일 업로드
List 디렉토리 목록
Delete 파일 삭제
Rename 파일 이름 변경

실전: 신규 파일 자동 처리 파이프라인

[Schedule: 5분마다]
  → [Google Drive: List (최근 5분 내 파일)]
  → [Filter: PDF만]
  → [Google Drive: Download]
  → [HTTP: AI OCR API]
  → [Edit Fields: 메타데이터 추출]
  → [Google Sheets: 기록]
  → [Slack: "새 문서 처리 완료" 알림]

파일 처리 팁

대용량 파일 주의

상황 해결
메모리 부족 EXECUTIONS_DATA_SAVE_MANUAL_EXECUTIONS=false
Binary 모드 N8N_DEFAULT_BINARY_DATA_MODE=filesystem (파일 시스템 저장)
타임아웃 워크플로우 Settings → Timeout 값 늘리기

파일명에 날짜 포함

{{ "report_" + $now.toFormat('yyyyMMdd_HHmm') + ".csv" }}
// → "report_20260426_0900.csv"

📝 정리

  • [x] Binary Data: n8n에서 파일을 다루는 데이터 구조. json(텍스트) + binary(파일)
  • [x] Google Drive: 파일 CRUD, 검색, 공유 설정
  • [x] Convert/Extract: JSON/CSV/Excel ↔ n8n 아이템 상호 변환
  • [x] FTP/SFTP: 원격 서버 파일 업로드/다운로드
  • [x] 대용량 팁: 파일 시스템 Binary 모드, 타임아웃 설정

다음 편 예고

20편: 크롤링과 HTML 추출 — 웹 데이터 수집 자동화

HTTP Request + HTML Extract로 웹 페이지를 크롤링하고, CSS 셀렉터로 원하는 데이터를 정밀 추출하자.