TheodoreKrypton / tgfs

Use telegram as file storage
Apache License 2.0
36 stars 8 forks source link
file-sharing filesystem telegram typescript webdav

logo

tgfs

Use telegram as file storage, with a command line tool and WebDAV server. Refer to the wiki page for more detail.

Test codecov npm version

Tested on Windows, Ubuntu, MacOS

Installation

Through NPM

$ npm install tgfs

Through Git

$ yarn install && yarn build
$ alias tgfs="yarn start:prod"

Use it as a WebDAV server

$ tgfs -w

or

$ tgfs --webdav

Tested WebDAV Clients:

cmd usage

Step by Step Guide to Set up config

For feature development purpose, any configuration is unstable at the current stage. You may need to reconfigure following any update.

Automatically:

A config file will be auto-generated when you run the program for the first time. Just follow the instructions to create a Telegram app and a private channel to store the files.

Manually:

Preparation

  1. Duplicate the example-config.yaml file and name it config.yaml

Set up account details (why do I need this?)

  1. Go to Here, login with your phone number and create a Telegram app.
  2. Copy the api_id and api_hash from the Telegram app page (step 2) to the config file (telegram -> account -> api_id / api_hash)

Set up the channel to store files

  1. Create a new Telegram private channel (New Channel in the menu on the left)
  2. There should be a message like "Channel created". Right click the message and copy the post link.
  3. The format of the link should be like https://t.me/c/1234567/1, where 1234567 is the channel id. Copy the channel id to the config file (telegram -> private_file_channel)

Set up a Telegram bot (why do I need this?)

  1. Go to BotFather, send /newbot, and follow the steps to create a bot.
  2. Paste the bot token given by BotFater to the config file (telegram -> bot -> token)
  3. Go to your file channel (created in the previous step), add your bot to subscriber, and promote it to admin, with permission to send/edit/delete messages.

Config fields explanation

FAQ

Q: Why do I need a bot when my account is also able to send messages?

Frequently sending messages may get your account banned, so using a bot is the best way to manage the risk. You can create another bot when it is banned.

Q: Why do I need an account API then?

The functionality of bot API is limited. For example, a bot can neither read history messages, nor send files exceeding 50MB. The account API is used when a bot cannot do the job.