파일 처리 — 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 셀렉터로 원하는 데이터를 정밀 추출하자.