코랩에서 클라우드 터널로 파일을 내 PC로 받아보자
Colab에 cloudflared quick-tunnel을 열고 Python HTTP 서버로 Drive 파일을 로컬 PC에 직접 내려받아보자
코랩에서 클라우드 터널로 파일을 내 PC로 받아보자
코랩에서 클라우드 터널로 파일을 내 PC로 받아보자
Drive에 저장된 파일을 PC로 옮기려면 Drive 앱이나 브라우저 수동 다운로드가 필요하다. Colab에 HTTP 서버와 cloudflared 터널을 열면 wget 한 줄로 바로 받을 수 있다.
1. 서론 (Introduction)
- 문제/상황 (Problem):
- Drive에 파일을 저장했지만 PC로 옮기려면 Drive 앱 동기화를 기다리거나 브라우저에서 하나씩 내려받아야 한다.
- Colab 환경은 공개 IP가 없어 PC에서 직접 접근할 수 없다.
- 목적 (Purpose):
- Colab 내부에 Python HTTP 서버를 띄우고 cloudflared quick-tunnel로 공개 HTTPS URL을 만들어, PC에서 wget으로 파일을 바로 받는다.
- 대상 (Target Audience):
- Drive를 거치지 않고 Colab → PC 직접 파일 전송이 필요한 개발자
2. 방법 및 과정 (Methods & Process)
- 배경 조사 및 데이터 (Data Collection):
- Colab VM은 NAT 뒤에 있어 외부에서 직접 접근이 불가능하다. 터널 도구가 Colab에서 외부 서버로 연결을 열고, 외부에서 그 연결을 통해 접근하는 구조다.
| 도구 | 특징 |
|---|---|
| cloudflared quick-tunnel | 인증 없이 임시 공개 URL 생성. 무료. *.trycloudflare.com 도메인 |
| ngrok | 계정 필요. 고정 도메인 옵션 있음 |
- 접근 방법 (Approach Methods):
- [방법 1]: cloudflared quick-tunnel — 인증 없이
cloudflared tunnel --url실행만으로 임시 공개 URL(*.trycloudflare.com)을 받는다. 별도 계정이 필요 없다. - [방법 2]: ngrok — 계정 가입과 인증 토큰이 필요하지만 고정 도메인 옵션을 쓸 수 있다. 이번 글은 계정 없이 바로 쓸 수 있는 cloudflared(방법 1)를 채택해
http.server.SimpleHTTPRequestHandler로 Drive 폴더를 서빙하고 출력에서 터널 URL을 파싱해 PC에 전달한다.
- [방법 1]: cloudflared quick-tunnel — 인증 없이
- 분석 및 해결 프로세스 (Analysis Flow):
- 도구/기술: Python, google-colab, cloudflared, http.server
- 주요 단계: Drive 마운트 $\rightarrow$ HTTP 서버 백그라운드 스레드 실행 $\rightarrow$ cloudflared 바이너리 다운로드 $\rightarrow$
tunnel --url http://localhost:8080실행 $\rightarrow$ stderr에서trycloudflare.comURL 파싱 $\rightarrow$ PC에서wget <URL>/파일명 - 결과 도출 및 검증: 터널 실행 →
https://<random>.trycloudflare.comURL 출력 → PC 브라우저 접근 → 파일 목록 확인 → wget으로 다운로드 완료.
3. 결과 (Results)
- 분석 결과 요약:
- Colab 세션이 살아있는 동안 공개 URL이 유지된다. PC에서
wget '<URL>/파일명'한 줄로 내려받을 수 있다. - HTTP 서버가 Drive 폴더를 서빙하므로 Drive에 파일이 많으면 목록이 브라우저에 그대로 노출된다.
- cloudflared 바이너리는
/content/에 내려받아 세션 동안 재사용한다. 세션마다 재다운로드가 필요하다.
- Colab 세션이 살아있는 동안 공개 URL이 유지된다. PC에서
4. 인사이트 및 액션 (Insights & Action)
- 인사이트 (Insight):
- quick-tunnel URL은 매 실행마다 바뀐다. 고정 URL이 필요하면 cloudflared 인증 터널이나 ngrok 계정 플랜을 써야 한다.
SimpleHTTPRequestHandler는 인증이 없다. 터널 URL을 아는 사람이면 누구나 접근할 수 있으므로 민감한 파일은 서빙하지 않는다. 세션이 끝나면 URL도 소멸한다.- 대용량 전송 속도는 Colab VM → Cloudflare 서버 → 내 PC 경로를 거친다. Drive 동기화보다 빠르거나 비슷한 수준이다.
- 실행 방안 (Action Plan):
- 샘플 코드를 Colab에 열고
SERVE_DIR을 서빙할 Drive 폴더로 교체해 실행한다.
- 샘플 코드를 Colab에 열고
- 한 줄 결론 (Key Takeaway):
- Python HTTP 서버 + cloudflared quick-tunnel 조합으로 Colab Drive 파일을 PC에서 wget 한 줄로 받을 수 있다. 샘플 코드
- 다음 스텝 (Next Step):
- quick-tunnel URL은 매 실행마다 바뀌어 자동화 스크립트에 고정 주소로 넣기 어렵다. 고정 도메인이 필요하면 cloudflared 인증 터널이나 ngrok 계정 기반 플랜처럼 별도 인증이 있는 옵션으로 전환해야 한다.
This post is licensed under CC BY 4.0 by the author.