2024/07/11

텔레그램을 무제한 클라우드 저장소로 활용 | Telegram Drive

텔레그램을 무제한 클라우드 저장소로 활용 | Telegram Drive

Teldrive WebUI 화면

텔레그램 무제한 클라우드 활용과 Teldrive로 파일 관리하기

구글 무제한 드라이브 대체 서비스로 Telegram을 무제한 클라우드로 활용하는 분들이 있다. 텔레그램의 주요 기능은 카카오톡처럼 메신저에 있지만, 파일 전송/저장 용량에 제한이 없다는 점을 이용하면 무제한 클라우드로 활용하는 것이 가능하다. 제한이 있다면 단일 파일 크기 제한(무료 계정 2GB, 프리미엄 계정 4GB)과 (무료 계정에 대한) 속도 제한 정도일 것이다.

텔레그램을 바이두 넷디스크, 구글 드라이브, PikPak, 테라박스 같은 클라우드 저장소로 활용하는데, 있어 가장 큰 난점이자 불편한 점은 (윈도우 탐색기나 바이두 넷디스크 PC 클라이언트에서 파일 목록/폴더 구조를 직관적으로 확인할 수 있는 것 같은) 파일 탐색이 불가능하다는 것이다. 고로 텔레그램에 저장한 자료의 양이 많아질수록 자료를 확인하거나 찾는 일도 어렵게 된다.

이 문제를 해결한 것이 Telegram Drive(Teldrive)다. Teldrive를 사용하면 WebUI 기반의 직관적인 인터페이스로 텔레그램 파일 관리가 가능하다. 사용법이 쉽지는 않지만, 일단 한 번 구축해 놓으면 요긴하게 쓸 수 있다.

이 글을 보고 Teldrive 사용에 성공했다면, rclone도 도전해보자!「텔레그램 저장소 마운트 | Rclone + Teldrive」, 그리고 Teldrive 사용에 관한 몇 가지 팁

Teldrive 주의 사항

"Teldrive는 Telegram 계정을 래퍼로 처리하여 파일 액세스를 간소화합니다. 그러나 사용자는 Telegram API에서 부과하는 제한을 준수해야 합니다. Teldrive는 이러한 API 제한을 준수하지 않아 발생하는 모든 결과에 대해 책임지지 않습니다. Telegram API를 오용하면 즉시 금지됩니다."

Telegram API 서비스 약관」을 대충 살펴봤는데, 파일 업로드/다운로드 트래픽과 관련된 사항은 없는 것 같다. 대신 「서비스 약관」에 다음과 같은 문구가 있다.

"Telegram is a free application that provides a wide range of services, including unlimited cloud storage, 2 GB file uploads, audio and video calls, group chats up to 200,000 members, support for multiple devices, and more, free of charge."
단, 6개월(최대 1년) 이상 접속하지 않은 계정은 자동 삭제된다는 것!


Teldrive 다운로드

https://github.com/divyam234/teldrive/releases

Teldrive 사용에 앞서...

teldrive run --tg-app-id="" --tg-app-hash="" --jwt-secret="" --db-data-source=""

Teldrive 실행에 필요한 필수 플래그들이다. 이 명령을 통해 App api_id, App api_hash, JWT secret, 데이터베이스(db)가 필요함을 알 수 있다.


Teldrive 준비물 1. JWT secret 얻기

Teldrive 홈페이지에 있는 링크를 통해 얻을 수 있다.
https://generate-secret.vercel.app/32

Teldrive 준비물 2. 텔레그램 API

https://my.telegram.org/apps
위 사이트에서 api_id, api_hash 값을 얻을 수 있다.

Teldrive 준비물 3. 데이터베이스 생성

파일 폴더의 트리 구조를 유지하기 위해서 데이터베이스를 사용해야 하는데, 일단 두 가지 선택 방안이 있다. NeonPostgreSQL.

Neon은 서버리스 형태로 Postgres 호환 데이터베이스를 제공하는 서비스다. 로컬 PC에서 별도의 데이터베이스 서버를 구동할 필요가 없고 사용법도 간단하다(계정 생성 후 데이터베이스를 생성하면 대시보드 중앙에 'postgresql://neondb_owner'로 시작하는 데이터베이스 연결 주소가 보이는데, 그것을 그대로 사용하면 된다). 다만, 무료 사용자는 데이터베이스 용량 0.5GB가 주어지는데, 오늘 하루 테스트해 본 것 만으로도 40MB를 사용한 것을 보면 장기적으로 볼 때 좋은 선택은 아닌 것 같다. Teldrive 1.4.10 버전부터 다국어 검색이 지원되면서 PGroonga를 사용할 수 없는 Noen은 더는 사용할 수 없게 되었다(다국어 검색이 지원되지 않는 구 버전에선 여전히 사용 가능).

PostgreSQL은 오픈 소스 객체 관계형 데이터베이스 시스템이다. 즉, 마이크로소프트의 SQL 서버의 무료 버전 같은 제품. 로컬 PC에서 데이터베이스 서버를 구동해야 하므로 PC에 약간 부담을 줄 수 있지만(실제로 사용해보니 생각보다 큰 부담은 없는 것 같다), 데이터베이스 파일이 증가하는 것에 대한 부담이 없고 백업/복구도 쉽다. PostgreSQL 설치 및 데이터베이스 생성 방법은 다음 문서를 참고, 「PostgreSQL 설치 및 세팅 pgAdmin 사용법 – Windows」. 그리고 버전 1.4.10 이후 사용자는 한글 등 다국어 검색을 위해 PGroonga 패치를 해야 한다(본문 하단 참고).

참고로 오늘 테스트에선 PostgreSQL 서버 포트는 8998, 사용자 이름은 Telegram, 데이터베이스 이름은 Telegram_Drive를 사용했으며, 데이터베이스가 유실되면 모든 자료를 잃는 것과 마찬가지니 백업에 만전을 기하자!

Teldrive 준비물 4. PostgreSQL 접속 주소

--db-data-source에 사용하는 데이터베이스 접속 명령어는,

 postgresql:://<db username>:<db password>@<db host>/<db name>
예:) postgresql://Telegram:xxxx@127.0.0.1:8998/Telegram_Drive

Teldrive 실행하기

이제 Teldrive 실행에 필요한 최소한의 정보를 다 모았다. 윈도우 명령 프롬프트 창에서 아래 명령어를 사용해 teldrive를 실행할 수 있고, 실행에 문제가 없다면 http://localhost:8080에 접속해서 텔레그램에 로그인하면 된다.

teldrive run --tg-app-id="12345678" --tg-app-hash="d53dxxxxxxxx" --jwt-secret="1b0efdgxxxxx" --db-data-source="postgresql://Telegram:xxxx@127.0.0.1:8998/Telegram_Drive"

Teldrive config.toml 구성

Teldrive config.toml 구성 파일

localhost:8080에서 텔레그램 로그인까지 문제가 없다면, 일단 teldrive를 종료하자. teldrive 실행할 때마다 긴 명령어를 입력하기는 번거로우므로 teldrive 실행에 필요한 설정값이 저장된 config.toml 파일을 수정하면 앞으론, 'teldrive run' 명령만으로 teldrive를 사용할 수 있다.

config.toml 파일은,
C:\Users\(사용자)\.teldrive\config.toml
에 저장되어 있다. 위 스샷처럼 기본적인 정보만 입력해도 된다. 모든 설정에 대한 샘플은 Config.sample.toml 파일 참고.


Teldrive 사용 팁

Teldrive를 사용해 자료를 업로드하고 관리하려면 [Select Channel] 기본 채널이 등록되어 있어야 한다.

Teldrive를 사용해 자료를 업로드하고 관리하려면 [Select Channel] 기본 채널이 등록되어 있어야 한다. 본인이 생성한 채널이 없다면, 텔레그램 앱에서 비공개 채널을 생성하면 된다.

그리고 bot을 한두 개 추가해 주면 업로드가 좀 더 원활해지는 것 같다(최소 bot 한 개 추천).

알다시피 텔레그램은 업로드 단일 파일 크기가 무료 계정은 2GB, 프리미엄 계정은 4GB로 제한되어 있다. 이것을 우회하는 설정이 [Split File Size]다.

알다시피 텔레그램은 업로드 단일 파일 크기가 무료 계정은 2GB, 프리미엄 계정은 4GB로 제한되어 있다. 이것을 우회하는 설정이 [Split File Size]다.

기본값은 500MB인데, 만약 2GB 파일을 업로드하면 500MB씩 나눠서 업로드하게 된다.

분할 업로드는 업로드 속도를 가속하는 장점도 있다.

분할 업로드는 업로드 속도를 가속하는 장점도 있다.

무료 계정 업로드 속도는 대략 5MB/s 정도로 제한되어 있는 것 같은데, 이렇게 나눠 업로드하면 나눈 만큼 속도가 증가한다.

2GB 넘는 파일을 분할 업로드하면 Teldrive WebUI에선 원래 파일 크기로 보이지만, 텔레그램 앱에서 보면 part 파일로 나누어져 있다.

마무리

한 이틀 정도 사용해 봤는데, 가장 큰 단점은 한국어, 중국어, 일본어 검색이 안 된다는 것이다. 이것은 PostgreSQL DB 문제인지, Teldrive 문제인지 알 수가 없지만, 일단 Teldrive 깃허브에 문의는 해놓았다. 버전 1.4.10부터 한국어 검색을 지원한다. 하지만, PostgreSQL에 PGroonga 패치가 필요하다(Neon DB는 사용 불가). PGroonga에서 사용 중인 PostgreSQL 버전에 맞는 PGroonga 패키지를 받아 PostgreSQL 설치된 폴더에 압축해제하고 다시 Teldrive 실행하면 데이터베이스 마이그레이션 끝!

두 번째 단점은 업로드가 중간에 멈추는 경우가 있다. 이럴 땐 페이지를 새로고침하고 다시 업로드해야 한다.

세 번째 단점은 일정량 업로드하면 업로드 속도가 마치 제한에 걸린 것처럼 0으로 떨어지기를 반복한다. 이 문제는 내 시스템 문제일 수도 있고, 텔레그램 측에서 무료 계정의 일일 트래픽을 제한하고 있는 것일 수도 있다.

아무튼, 지금까지 텔레그램이 ‘무제한 저장‘에 대한 약속을 잘 지켜왔던 것처럼 앞으로도 잘 지켜준다면 이만한 무료 무제한 클라우드는 없을 것이다.

댓글 6개:

  1. 작성자가 댓글을 삭제했습니다.

    답글삭제
    답글
    1. 그건 SQL 서버가 실행되는 PC의 IP입니다. 본문에 링크된 'PostgreSQL 설치 및 세팅' 글을 참고하시면 됩니다.

      삭제
  2. 'teldrive'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는
    배치 파일이 아닙니다. 이렇게 뜨는데 해결법이 있을까요?

    답글삭제
    답글
    1. 명령 프롬프트 창을 연 다음 teldrive.exe 파일이 있는 경로로 이동해서 실행해야 합니다. 명령 프롬프트 창에서 경로 이동 방법은 구글을 참고하세요.

      삭제
    2. tls 오류: 서버가 TLS 연결을 거부했습니다 이런 문구가 계속 나오는데 아무리 찾아봐도 해결방법이 안나와서 혹시 해결방법 아시나요?

      삭제

댓글은 검토 후 게재됩니다.
본문이나 댓글을 정독하신 후 신중히 작성해주세요