2024/07/12

텔레그램 저장소 마운트 | Rclone + Teldrive

텔레그램 저장소 마운트 | Rclone + Teldrive

Teldrive에 관한 몇 가지 추가 글

빈약한 설명이지만, 「텔레그램을 무제한 클라우드 저장소로 활용 | Telegram Drive」 글을 보고 Teldrive 사용에 성공했다면, 텔레그램 저장소를 (RaiDrive로 구글 드라이브를 연결하는 것처럼) 윈도우 탐색기에 마운트할 수 있는 ‘Rclone + Teldrive’ 조합도 해봐야 할 것이다. ‘빈약한 설명’에 대해 다소 변명의 말을 하자면, 저 ‘빈약한 설명’을 토해낼 수 있었던 것도 반나절 동안 열심히 맨땅에 헤딩한 덕분일 것.

아무튼, Teldrive 테스트 후에 한글, 중국어 등 다국어 검색이 안 되는 문제를 깃허브 issues 게시판에 문의했었는데, 개발자가 곧바로 다국어 검색 기능이 추가된 새 버전을 업데이트해 주었다. 버전 업데이트와 배포 날짜를 보면 현재 개발이 한창 중인 것을 알 수 있다.

Teldrive 사용에 관한 몇 가지 팁

텔레그램에 과도한 업로드, 괜찮을까?

아마 많은 분이 과도한 업로드로 인해 계정에 불이익을 당하지는 않을까 하는 염려가 있을 텐데, 텔레그램 서비스 약관에도 명시되어 있듯 현재까지 ‘무료 무제한 클라우드’를 은근히 선전하고 있는 것이 텔레그램이다. 하지만, 업로드 후 ‘soft ban’ 당했다는 사람의 이야기가 있다.

나머지 읽기

Teldrive issues 게시판의 「Share links」이란 글을 보면, 5개의 봇(무려 5개의 봇!)을 사용해 업로드했다가 ‘soft ban’을 당했다는 사람의 글이 있고, 그 글에 대해 개발자는 ‘I have never faced a ban till now even after rigrous uploading(지금까지 격렬하게 업로드를 했어도 밴을 당한 적 없습니다)’라고 답변을 달았다.

다섯 개의 봇을 사용해 업로드한다면 ‘soft ban’을 당해도 할 말은 없을 것 같지만, 아무튼 개발자는 ‘soft ban’ 방지를 위해 --tg-rate-limit(속도 제한) 옵션을 기본값으로 추가했다고 한다(끄고 싶은 사람은 config.toml 파일을 수정하면 된다, 더 많은 옵션을 보고 싶다면 teldrive run –h).

--tg-rate-limit Enable rate limiting for telegram client (default true)

그런데 중요한 것은 ‘soft ban’이라는 것이다. 「How to Tell if You Were Banned on ‘Pokemon GO’: Soft Ban vs. Perma Ban」이란 글을 보면 ‘소프트 밴’은 계정 영구 차단과는 무관한 일시적인 조치다. 예를 들면, 일정 횟수 로그인 실패하면 일정 시간 계정이 잠기는 것 같은 임시 조치다. ‘soft ban’이 누적된다고 해서 영구 차단으로 이어지지는 않는다(바이두도 ‘블랙리스트’는 블랙리스트이고, 그렇다고 계정을 차단하지는 않았다).

그리고 텔레그램 API 약관을 보면,

4.1 앱이 이러한 약관을 위반하는 경우, 당사는 해당 앱을 담당하는 Telegram 계정에 약관 위반 사실을 통지합니다.
4.2. 10일 이내에 강조 표시된 문제를 해결하기 위해 앱을 업데이트하지 않으면, 당사는 Telegram API에 대한 귀하의 액세스를 중단하고, 이러한 약관을 위반하여 Telegram API를 사용하는 귀하의 앱을 제거하기 위해 앱 스토어에 연락해야 합니다.

텔레그램 약관 어디에도 트래픽/데이터 축적(data hoarding)과 관련된 사항은 아직 찾지 못했다. Teldrive 출시한 지가 1년이 넘었는데, 계정이 차단당했다는 이야기는 아직 없고 (헤비 업로더라 짐작할 수 있는) Teldrive 개발자 역시 문제없다고 말한다. 이 글을 보면 2.3PT(테라바이트가 아니고 페타바이트다!)을 저장한 사람도 있다고 한다. (다섯 개의 봇을 사용하는 것 같은) 과도한 트래픽 유발로 인해 일시적인 ‘소프트 밴’은 있는 것 같지만, 업로드를 많이 한다고 해서 문제가 될 것은 없다는 것이 내 생각이다.

그렇더라도 무제한 스토리지 정책이 언제까지 유지될지는 아무도 모른다는 것.

Download Rclone for Teldrive

홈페이지: github.com/divyam234/rclone

다운로드: github.com/divyam234/rclone/releases

Rclone for Teldrive 설정하기

rclone config 명령으로 Teldrive 저장소를 추가

기본적인 rclone 사용법은 구글에 넘쳤으니 생략해도 될 것 같고, 사실 나도 자세한 것은 잘 모르고 수박 겉핥기식으로 배워 사용하고 있다.

rclone config 명령으로 Teldrive 저장소를 추가하려면 48번이다. 그리고 나머지 값들은 그냥 ‘엔터’를 눌러 넘어가자.

참고로 오늘 테스트에선 저장소 이름을 ‘teldrive’라고 명명했다.

쿠키에서 user-session 값을 복사

Teldrive WebUI에서 ‘개발자 도구’를 사용해 쿠키에서 user-session 값을 복사해 메모장 같은 곳에 보관해 두자.

rclone.conf 파일을 열어 teldrive 관련 값을 위 사진을 참고해 수정한 다음 저장

이제 Rclone Config 파일을 수정해야 한다(샘플 파일).

AppData\Roaming\rclone 폴더에 있는 rclone.conf 파일을 열어 teldrive 관련 값을 위 사진을 참고해 수정한 다음 저장한다. 중요한 것은 설정값 뒤에 공백이 있으면 안 된다는 것!

포트 번호는 사용 중인 것으로 변경하고 샘플 파일과는 다르게 [chunk_size] 값이 없는 것은 Teldrive의 [Split File Size] 설정으로 인해 분할 업로드가 되므로 굳이 chunk_size를 별도로 설정할 필요는 없다. [random_chunk_name](기본값은 true)을 사용하면 rclone으로 업로드하는 파일 이름이 랜덤하게 변경된다(텔레그램 앱에서만 그렇게 보임). 누군가에게 채널에 업로드되는 파일 이름을 감추고 싶을 때, 혹은 해킹당했을 때를 대비한 설정으로 보인다. 저작권, 보안 등을 생각하면 사용하는 것이 좋고, DB가 유실되었을 때 파일명으로 자료를 찾고 싶다면 끄는 것이 좋은데, 기본값으로 켜져 있는 이유가 있을 것이라 생각하고 사용 중. [upload_concurrency]도 Teldrive WebUI와 같이 4로 설정했지만, 테스트해 본 결과 rclone의 --transfers 옵션이 우선 적용된다. 24시간 동안 --transfers 8로 자료를 업로드한 결과 이상 무(평균 업로드 속도는 15~17MB/s).

Teldrive 속도 제한이 기본으로 켜져 있어(속도 제한을 끄고 싶다면, Teldrive config.toml > [tg] rate-limit=false), transfers 값을 증가해도 속도 향상은 없다. 작은 파일들을 전송할 때는 값을 높게, 큰 파일들을 전송할 땐 낮게 설정하면 될 것 같다.

Rclone으로 텔레그램에 파일 업로드

rclone copy 명령으로 PC에 있는 자료를 텔레그램 저장소로 업로드할 수 있다

이제 rclone copy 명령으로 PC에 있는 자료를 텔레그램 저장소로 업로드할 수 있다(당연히 Teldrive 실행 중이여야 한다).

하루 동안 이런저런 실험을 해본 결과 최적의 복사 명령어는 다음과 같다.

rclone copy "C:\data" teldrive:"/Test" --progress --create-empty-src-dirs --fast-list --retries 3 --retries-sleep 5s --timeout 0 --contimeout 0 --transfers 4
(C 드라이브 data 폴더 안의 모든 자료를 텔레그램 Test 폴더에 복사, 동시 전송 4개)

여기서 중요한 옵션은 ‘timeout’과 ‘contimeout’인데, 이걸 설정하지 않으면, ‘error sending chunk’, ‘A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond’ 같은 에러 때문에 업로드가 원활히 안 된다.

참고로 ‘구글 드라이브→텔레그램’ 자료 전송도 테스트했는데, ‘PC→텔레그램‘만큼 잘 안된다(이땐 server-side-across-configs 옵션을 반드시 사용해야 함). 그렇게 한창 테스트 중일 때 구글에서 연결을 차단당했다(지금은 풀림). 이것도 ’소프트 밴‘의 일종인데, 당시 rclone만 구글 연결을 차단당했고, 에어익스플로러 등에선 다운로드가 가능했다.

Teldrive 개발자는 Teldrive WebUI에서 업로드하는 것보다 rclone을 사용해 업로드하는 것을 권장

Teldrive 개발자는 Teldrive WebUI에서 업로드하는 것보다 rclone을 사용해 업로드하는 것을 권장하는데, 써보면 왜 그런지를 알 수 있다.

rclone을 사용하면 폴더 업로드가 가능하고, 속도도 빠르다. 위 사진에서 알 수 있듯 ’rclone + teldrive’ 조합의 순간 업로드 속도는 인터넷 회선 최고 속도가 나온다(평균은 이보다 훨씬 낮지만). 인터넷 대역폭 점유율에 비하면 CPU 점유율도 낮다.

PC에 있는 230GB 자료를 ’rclone + teldrive’ 조합으로 텔레그램에 업로드하는데 3시간 42분이 소요되었다. 평균 업로드 속도가 17.2MB/s임을 알 수 있다. 이 속도는 무료 계정의 한계, 혹은 (soft ban 방지를 위한) --tg-rate-limit 설정이 적용되어서 그런 것일 수도 있다.

텔레그램 저장소 마운트

’rclone + teldrive’ 조합의 최대 장점은 텔레그램 저장소를 윈도우 탐색기에 마운트할 수 있다는 것이다. 내가 사용한 rclone 마운트 옵션은 아래와 같고, 최적 설정은 PC/인터넷 환경마다 다를 수 있으니 참고만 하자.

마운트 후 스트리밍도 원활하다(고용량은 아직 테스트 못 함).

여기까지 성공했다면, 「오라클 무료 VPS PostgreSQL + Teldrive」도 도전해보자!!!

rclone mount teldrive: V: --local-no-check-updated --drive-skip-gdocs --poll-interval=15s --vfs-cache-mode full --vfs-write-back 5s --bwlimit-file 16M --buffer-size=16M --vfs-read-chunk-size=32M --vfs-cache-max-size 50G --vfs-cache-max-age 336h --vfs-read-ahead 32M --dir-cache-time=30s --transfers=4 --cache-dir=M:\Temp\rclone

댓글 2개:

  1. 안녕하세요! 항상 글 너무 유익하게 잘 읽고 있습니다.
    본문 따라하던 중 한가지 궁금한 게 있어서 댓글 드려요.
    혹시 web ui로 올린 파일도 자동으로 텔레그램에서는 랜덤 문자열로 파일명이 바뀌나요?
    직접 해보고 싶은데 이상하게 제 web ui는 업로드가 안 되네요...... 모바일 사용 때문에 랜덤 파일명을 적용할지 말지 고민중이라 여쭤봅니다

    답글삭제
    답글
    1. 웹으로 올리면 파일명 유지됩니다.

      삭제

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