Giter Site home page Giter Site logo

teldrive's Introduction

Telegram Drive

Telegram Drive is a powerful utility that enables you to organise your telegram files and much more.

Discord

Click on icon to join Discord Server

Features

  • UI: Based on Material You to create nice looking UI themes.
  • Secure: Your data is secured using robust encryption.
  • Flexible Deployment: Use Docker Compose or deploy without Docker.

Advantages Over Alternative Solutions

  • Exceptional Speed: Teldrive stands out among similar tools, thanks to its implementation in Go, a language known for its efficiency. Its performance surpasses alternatives written in Python and other languages, with the exception of Rust.

  • Enhanced Management Capabilities: Teldrive not only excels in speed but also offers an intuitive user interface for efficient file interaction which other tool lacks. Its compatibility with Rclone further enhances file management.

Important

Teldrive functions as a wrapper over your Telegram account, simplifying file access. However, users must adhere to the limitations imposed by the Telegram API. Teldrive is not responsible for any consequences arising from non-compliance with these API limits.You will be banned instantly if you misuse telegram API.

demo

More Images

demo2 demo3 demo5 demo8 demo7 demo4


UI Repo

File Browser Component

Deploy using docker-compose

version: "3.8"

services:
  server:
    image: ghcr.io/divyam234/teldrive
    restart: always
    container_name: teldrive
    volumes:
      - ./session.db:/session.db:rw
      - ./config.toml:/config.toml
    ports:
      - 8080:8080

People Who want to use local Postgres instance

version: "3.8"

services:
  server:
    image: ghcr.io/divyam234/teldrive
    restart: always
    container_name: teldrive
    volumes:
      - ./session.db:/session.db:rw
      - ./config.toml:/config.toml
    ports:
      - 8080:8080
    depends_on:
      db:
        condition: service_healthy
  db:
    image: postgres:15
    container_name: teldrive_db
    restart: always
    environment:
      - POSTGRES_USER=teldrive
      - POSTGRES_PASSWORD=secret
    volumes:
      - ./postgres_data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD", "pg_isready", "-U", "teldrive"]
      interval: 10s
      start_period: 30s

Follow Below Steps

  • Create the config.toml file with your values and start your container. See how to fill file below.
[db]
data-source = "postgres://<db username>:<db password>@<db host>/<db name>"

[jwt]
secret = "abcd"

[tg]
app-id = 
app-hash = "fwfwfwf"

Only these values are mandatory however you can change or tweak your config see more in advanced configurations below.

touch session.db
docker compose up -d

Use without docker

Follow Below Steps

  • Download the release binary of Teldrive from the releases section.

  • Add same config file as above.

  • Now, run the Teldrive executable binary directly.

  • You can also set up without config file.

One line installer for linux

curl -s https://sh-install.vercel.app/divyam234/teldrive | bash # install in current directory

curl -s https://sh-install.vercel.app/divyam234/teldrive! | bash # install in /usr/local/bin
teldrive run --tg-app-id="" --tg-app-hash="" --jwt-secret="" --db-data-source=""

Generate JWT

$ openssl rand -hex 32

You can generate secret from here.

Important

  • You can set up a local Postgres instance, but it's not recommended due to backup and data transfer hassles. The recommended approach is to use a free cloud-based Postgres DB like Neon DB.
  • Default Channel can be selected through UI. Make sure to set it from account settings on first login.
  • Multi Bots Mode is recommended to avoid flood errors and enable maximum download speed, especially if you are using downloaders like IDM and aria2c, which use multiple connections for downloads.
  • To enable multi bots, generate new bot tokens from BotFather and add them through UI on first login.
  • Uploads from UI will be slower due to limitations of the browser. Use modified Rclone version for teldrive.
  • Teldrive supports image thumbnail resizing on the fly. To enable this, you have to deploy a separate image resize service from here.
  • After deploying this service, add its URL in Teldrive UI settings in the Resize Host field.
  • Files are deleted at regular interval of one hour through cron job from tg channel after its deleted from teldrive this is done so that person can recover files if he/she accidently deletes them.

Advanced Configuration

cli options

teldrive run --help
Flag Name Description Required Default Value
--jwt-secret JWT secret key Yes ""
--db-data-source Database connection string Yes ""
--tg-app-id API ID for your Telegram account, which can be obtained from my.telegram.org. Yes 0
--tg-app-hash API HASH for your Telegram account, which can be obtained from my.telegram.org. Yes ""
--jwt-allowed-users Allow certain Telegram usernames, including yours, to access the app. No ""
--tg-uploads-encryption-key Encryption key for encrypting files. No ""
--config, -c Config file. No $HOME/.teldrive/config.toml
--server-port, -p Server port No 8080
--log-level Logging level

DebugLevel = -1
InfoLevel = 0
WarnLevel = 1
ErrorLevel = 2
No -1
--tg-rate-limit Enable rate limiting No true
--tg-rate-burst Limiting burst No 5
--tg-rate Limiting rate No 100
--tg-session-file Bot session file. No $HOME/.teldrive/session.db
--tg-bg-bots-limit Start at most this no of bots in the background to prevent connection recreation on every request.Increase this if you are streaming or downloading large no of files simultaneously. No 5
--tg-uploads-threads Concurrent Uploads threads for uploading file No 16
--tg-uploads-retention Uploads retention duration.Duration to keep failed uploaded chunks in db for resuming uploads. No 7d

You Can also set config values through env varibles.

  • For example tg-session-file will become TELDRIVE_TG_SESSION_FILE same for all possible flags.

  • See config.sample.toml in repo if you want to setup advanced configurations through toml file.

Warning

Keep your Password safe once generated teldrive uses same encryption as of rclone internally so you don't need to enable crypt in rclone.Teldrive generates random salt for each file part and saves in database so its more secure than rclone crypt whereas in rclone same salt value is used for all files which can be compromised easily. Enabling crypt in rclone makes UI redundant so encrypting files in teldrive internally is better way to encrypt files and more secure encryption than rclone.To encrypt files see more about teldrive rclone config.

For making use of Multi Bots

Warning

Bots will be auto added as admin in channel if you set them from UI if it fails somehow add it manually.For newly logged session you have to wait 20-30 min to add bots to telegram channel.FRESH_CHANGE_ADMINS_FORBIDDEN error will be thrown if you try to add bots before that time frame.

Rclone Config Example

[teldrive]
type = teldrive
api_host = http://localhost:8080 # default host
access_token = #session token obtained from cookies
chunk_size = 500M
upload_concurrency = 4
encrypt_files = false # Enable this to encrypt files make sure ENCRYPTION_KEY env variable is not empty in teldrive instance.
randomise_part= true # Use random part names when uploading files to channel instead of original filename.

See all options in rclone config command

Read Wiki for FAQ.

Best Practices for Using Teldrive

Dos:

  • Follow Limits: Adhere to the limits imposed by Telegram servers to avoid account bans and automatic deletion of your channel.

Don'ts:

  • Data Hoarding: Avoid excessive data hoarding, as it not only violates Telegram's terms but also leads to unnecessary wastage of storage space.

Additional Recommendations:

  • Responsible Storage: Be mindful of the content you store on Telegram. Utilize storage efficiently and only keep data that serves a purpose.

  • Respect Terms of Service: Familiarize yourself with and adhere to the terms of service provided by Telegram to ensure a positive and sustainable usage experience.

By following these guidelines, you contribute to the responsible and effective use of Telegram, maintaining a fair and equitable environment for all users.

Contributing

Feel free to contribute to this project if you have any further ideas.

Donate

If you like this project small contribution would be appreciated Paypal.

teldrive's People

Contributors

dependabot[bot] avatar divyam234 avatar eltociear avatar joseavilasg avatar kzshantonu avatar tar-xz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

teldrive's Issues

Register already uploaded files

Hi, I have been uploading tons of files directly to a channel via Telegram bot api running locally. Is there any way I can add those files so it will appear and accessible from this apps? I was looking on the database and I think that should be possible. Thanks!

1.0.14 SQL error

Tried to run test.sql to update to 1.0.14 (I'm on 1.0.13) and received this from neon console.

ERROR: could not create unique index "uploads_pk" (SQLSTATE 23505)

If I try to analize or explain in neon console I receive this:

ERROR: syntax error at or near ";" (SQLSTATE 42601)

Edit: I was trying other ways as my almost 0 knowledge about plsql.

Reached this point:

ERROR: Key (upload_id, part_no)=(15e244f3985424e7857fc0fce3a74383, 1) is duplicated.could not create unique index "uploads_pk"

ERROR: could not create unique index "uploads_pk"
SQL state: 23505
Detail: Key (upload_id, part_no)=(15e244f3985424e7857fc0fce3a74383, 1) is duplicated.

I have a bunch of them repeated

imagen

imagen

Share links

Will you add this feature in the future. To share the links of the files with friends for example. I tested it and the upload is super fast with bots, around 30-40MB/s. But I don't see the option for share like in teledive. Good job and keep it up

Not upload any file and how mount as fs?

From rclone:

2023/12/23 18:13:36 Failed to move: HTTP error 413 (413 Request Entity Too Large) returned body: "<html>\r\n<head><title>413 Request Entity Too Large</title>... etc

From UI

image
image

I use one docker-compose with DB.

Rclone IO error when using teldrive

I built your fork of rclone and used the binary compiled to add the teldrive type, I obtained the "access_token" by getting the cookies from teldrive webui like this:
cookie "user-session" from the teldrive web ui when logged in
And copying the full user-session value.

On rclone when creating the remote:

I entered as the api host http://localhost:8000, as any other port gave a connection denied error, so I suppose it goes through the haproxy.

But when I try to mount the remote and use it I get this error on rclone IO error: invalid character '<' looking for beginning of value.

And I get a '.': Input/output error when trying to ls on the directory.

Am I using the correct values? Is your rclone fork currently working?

Thank you for the project

Error 500 default channel not set

Can you make to auto set Default Channel or Create new Channel after login for uploading because without set the Channel get error 500.

24/12/2023 04:17 PM     ERROR   uploads uploadFile      {"error": "default channel not set", "errorVerbose": "default channel not set\ngithub.com/divyam234/teldrive/pkg/services.GetDefaultChannel\n\t/app/pkg/services/common.go:265\ngithub.com/divyam234/teldrive/pkg/services.(*UploadService).UploadFile\n\t/app/pkg/services/upload.go:153\ngithub.com/divyam234/teldrive/pkg/controller.(*Controller).UploadFile\n\t/app/pkg/controller/upload.go:41\ngithub.com/gin-gonic/gin.(*Context).Next\n\t/go/pkg/mod/github.com/gin-gonic/[email protected]/context.go:174\ngithub.com/divyam234/teldrive/pkg/middleware.Authmiddleware\n\t/app/pkg/middleware/authjwt.go:50\ngithub.com/gin-gonic/gin.(*Context).Next\n\t/go/pkg/mod/github.com/gin-gonic/[email protected]/context.go:174\ngithub.com/divyam234/teldrive/api.InitRouter.RecoveryWithZap.CustomRecoveryWithZap.func2\n\t/go/pkg/mod/github.com/gin-contrib/[email protected]/zap.go:159\ngithub.com/gin-gonic/gin.(*Context).Next\n\t/go/pkg/mod/github.com/gin-gonic/[email protected]/context.go:174\ngithub.com/divyam234/teldrive/api.InitRouter.Ginzap.GinzapWithConfig.func1\n\t/go/pkg/mod/github.com/gin-contrib/[email protected]/zap.go:59\ngithub.com/gin-gonic/gin.(*Context).Next\n\t/go/pkg/mod/github.com/gin-gonic/[email protected]/context.go:174\ngithub.com/gin-gonic/gin.(*Engine).handleHTTPRequest\n\t/go/pkg/mod/github.com/gin-gonic/[email protected]/gin.go:620\ngithub.com/gin-gonic/gin.(*Engine).ServeHTTP\n\t/go/pkg/mod/github.com/gin-gonic/[email protected]/gin.go:576\nnet/http.serverHandler.ServeHTTP\n\t/usr/local/go/src/net/http/server.go:2938\nnet/http.(*conn).serve\n\t/usr/local/go/src/net/http/server.go:2009\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1650"}

Feature request : allow if user in specific group

Hi, I want feature that only allow user to use my host if they are in specific group.

I have checked this login method that check for username,

func (as *AuthService) LogIn(c *gin.Context) (*schemas.Message, *types.AppError) {

We can also add group one also

Like if !allowedUsername(username) or !inGroup(grp_id)

I tried to do myself, but can't find how I can do because it seems complicated 😅. I tried to find if it is in ui code but found out that backend is only talking with telegram api and frontend is sending request to backend

But can't find which backend file handling /api/auth/as

Etc.

You will be familiar with TelDrive code so you can implement it surely

Can't list root folder (a.k.a `my-drive` content on the webUI)

I just upgrade my teldrive to the 1.0.15 and the modded rclone (I will refer it as tclone from now on) to the 1.65.1, and suddenly neither the webUI nor the tclone lsd command lists the content of the root folder. However, the content still exists, because I can list the subfolder by directly using its path.

On webUI

The root folder my-drive is empty:
Screenshot 2023-12-09 at 1 07 27 AM

However, assessing a known subfolder works fine:
Screenshot 2023-12-09 at 1 07 40 AM

On modded rclone:

It shows empty result when trying to list the root folder content:

tclone lsd td:
Screenshot 2023-12-09 at 1 16 34 AM

However, the content is listed correctly if a valid subpath is provided to the command:

tclone lsd td:Resource
Screenshot 2023-12-09 at 1 19 13 AM

I am not sure if this is a bug or is there any action I need to take. Please let me know, thanks!

Downloads fail when using bots, because the telegram api returns empty messages.

Hi,

When I try to download any of my files I get an internal server error.

The following error is logged:

teldrive | 25/12/2023 11:05 PM ERROR [Recovery from panic] {"time": "25/12/2023 11:05 PM", "error": "interface conversion: tg.MessageClass is tg.MessageEmpty, not tg.Message", "request": "GET /api/files/fwXkleFNFa30ETYM/stream/jcajqh6586oum5vt1dfrhmpofjbacp9k2f3vdji0raj55qgjutcid16lkpi5vdckhhpd3jn76qse2?hash=a2cf7f10b89e59bf8f5c175a6ca474a7&d=1 HTTP/1.1\r\nHost: localhost:19919\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8,application/signed-exchange;v=b3;q=0.7\r\nAccept-Encoding: gzip, deflate, br\r\nAccept-Language: de,de-DE;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6\r\nCache-Control: max-age=0\r\nConnection: keep-alive\r\nCookie: user-session=REDACTED\r\nSec-Ch-Ua: "Not_A Brand";v="8", "Chromium";v="120", "Microsoft Edge";v="120"\r\nSec-Ch-Ua-Mobile: ?0\r\nSec-Ch-Ua-Platform: "Windows"\r\nSec-Fetch-Dest: document\r\nSec-Fetch-Mode: navigate\r\nSec-Fetch-Site: none\r\nSec-Fetch-User: ?1\r\nUpgrade-Insecure-Requests: 1\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0\r\n\r\n", "stack": "goroutine 168383 [running]:\nruntime/debug.Stack()\n\t/usr/local/go/src/runtime/debug/stack.go:24 +0x5e\ngithub.com/divyam234/teldrive/api.InitRouter.RecoveryWithZap.CustomRecoveryWithZap.func2.1()\n\t/go/pkg/mod/github.com/gin-contrib/[email protected]/zap.go:147 +0x330\npanic({0x162e1c0?, 0xc00017cc60?})\n\t/usr/local/go/src/runtime/panic.go:914 +0x21f\ngithub.com/divyam234/teldrive/pkg/services.getParts({0x1de9698, 0xc00149e800}, 0x1dd1f40?, 0xc000afe000, {0xc0001aab10, 0xa})\n\t/app/pkg/services/common.go:161 +0x547\ngithub.com/divyam234/teldrive/pkg/services.(*FileService).GetFileStream(0xc001580048, 0xc00149e800)\n\t/app/pkg/services/file.go:614 +0x14d6\ngithub.com/divyam234/teldrive/pkg/controller.(*Controller).GetFileStream(...)\n\t/app/pkg/controller/file.go:101\ngithub.com/gin-gonic/gin.(*Context).Next(0xc00149e800)\n\t/go/pkg/mod/github.com/gin-gonic/[email protected]/context.go:174 +0x2b\ngithub.com/divyam234/teldrive/api.InitRouter.RecoveryWithZap.CustomRecoveryWithZap.func2(0xc000827488?)\n\t/go/pkg/mod/github.com/gin-contrib/[email protected]/zap.go:159 +0x78\ngithub.com/gin-gonic/gin.(*Context).Next(0xc00149e800)\n\t/go/pkg/mod/github.com/gin-gonic/[email protected]/context.go:174 +0x2b\ngithub.com/divyam234/teldrive/api.InitRouter.Ginzap.GinzapWithConfig.func1(0xc00149e800)\n\t/go/pkg/mod/github.com/gin-contrib/[email protected]/zap.go:59 +0xb1\ngithub.com/gin-gonic/gin.(*Context).Next(...)\n\t/go/pkg/mod/github.com/gin-gonic/[email protected]/context.go:174\ngithub.com/gin-gonic/gin.(*Engine).handleHTTPRequest(0xc0001a0340, 0xc00149e800)\n\t/go/pkg/mod/github.com/gin-gonic/[email protected]/gin.go:620 +0x65b\ngithub.com/gin-gonic/gin.(*Engine).ServeHTTP(0xc0001a0340, {0x1de7738?, 0xc0002188c0}, 0xc0015c6000)\n\t/go/pkg/mod/github.com/gin-gonic/[email protected]/gin.go:576 +0x1dd\nnet/http.serverHandler.ServeHTTP({0xc001ef3920?}, {0x1de7738?, 0xc0002188c0?}, 0x6?)\n\t/usr/local/go/src/net/http/server.go:2938 +0x8e\nnet/http.(*conn).serve(0xc0046fecf0, {0x1de9548, 0xc00025eb70})\n\t/usr/local/go/src/net/http/server.go:2009 +0x5f4\ncreated by net/http.(*Server).Serve in goroutine 1\n\t/usr/local/go/src/net/http/server.go:3086 +0x5cb\n"}

This happens both when trying to download with the browser (tried Firefox and Edge) and via the rclone fork.

I am using the docker image of version 1.0.18.

Accessing non-existent folders via manual URLs

Hi. I've come across an issue with dynamic routes. It appears that it's possible to manually input URLs in the address bar that lead to non-existent folders, as shown in the attached image

routes

rclone bug

i comppiled rclone from https://github.com/divyam234/rclone on ubuntu
2023-10-11 16:50:11 DEBUG : 00000-1170173422.png(0xc000113000): >_readAt: n=0, err=vfs reader: failed to write to cache file: HTTP error 400 (400 Bad Request) returned body: "misssing hash\n"

2023-10-11 16:50:12 DEBUG : 00000-1170173422.png(0xc000113000): >close: err=
2023-10-11 16:50:12 INFO : /00000-1170173422.png: GET from [::1]:46302
Errors: 120 (retrying may help)
i tried http sftp and webdav it not work command was:
rclone -P serve http --addr :3234 td: --vfs-cache-mode full -vvv --transfers=10 --multi-thread-streams=16 --vfs-cache-max-age=24h
my url: https://martynka-teldrive.hf.space/
please help

Error on upload

Hi, I am following the guide on the main page but unable to upload. Every time I tried this error shows and it did not tell me what's wrong.
3277TLzsni
I get a minus channel id so I tried both using minus and without minus, and both still failed to upload.
The channel type is private and there is only my account listed as user in it.
Here's my .env

APP_ID=2496
APP_HASH=8da85b0d5bfe62527e5b244c209159c3
CHANNEL_ID=REDACTED
HTTPS=false
COOKIE_SAME_SITE=true
JWT_SECRET=gbT9iovNfvGGo4S1C2+r7Phwh9qXPVIJdLpRJxpO44I=
DATABASE_URL=postgres://REDACTED:[email protected]/neondb
RATE_LIMIT=true
TG_CLIENT_DEVICE_MODEL="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36 Edg/115.0.1901.203" # Any valid  browser user agent here
TG_CLIENT_SYSTEM_VERSION=Win32
TG_CLIENT_APP_VERSION=2.1.9 K
TG_CLIENT_LANG_CODE=en
TG_CLIENT_SYSTEM_LANG_CODE=en
TG_CLIENT_LANG_PACK=webk
MULTI_CLIENT=false
MULTI_TOKEN1=55838383:yourfirstmulticlientbottokenhere
MULTI_TOKEN2=55838383:yoursecondmulticlientbottokenhere
MULTI_TOKEN3=55838383:yourthirdmulticlientbottokenhere

I access the apps from http://localhost:8000
And here's the setting's page
tvnviewer_JhEalMCmZz
I assume I have to put http://localhost:8000 on API URL, but with or without putting value on that field, the upload still failed.
Thanks!

rClone mount error : Failed to create file system for "TelDrive1:": invalid character '<' looking for beginning of value

Hi,

Thanks for your work.
I gave it a try and could run the WebUI but I got an error while trying to mount my teldrive remote using rClone:
Failed to create file system for "TelDrive1:": invalid character '<' looking for beginning of value

Here is my rclone.conf:

[TelDrive1]
type = teldrive
access_token = eyJhbG***0g
api_host = http://10.0.4.64:3120/api
chunk_size = 1Gi

[TelDrive1Crypted]
type = crypt
remote = TelDrive1:
password = ***

When loading the /api URL http://10.0.4.64/api:

Unexpected Application Error!
b[o] is undefined

ao</j<@http://10.0.4.64:3120/assets/path-899515a5.js:1:32470
useMemo@http://10.0.4.64:3120/assets/vendor-1fb2baaf.js:30:69240
s.useMemo@http://10.0.4.64:3120/assets/vendor-1fb2baaf.js:1:7121
ao<@http://10.0.4.64:3120/assets/path-899515a5.js:1:32455
ks@http://10.0.4.64:3120/assets/vendor-1fb2baaf.js:30:62910
Ol@http://10.0.4.64:3120/assets/vendor-1fb2baaf.js:30:74441
Cl@http://10.0.4.64:3120/assets/vendor-1fb2baaf.js:30:73649
Sl@http://10.0.4.64:3120/assets/vendor-1fb2baaf.js:30:73254
Cc@http://10.0.4.64:3120/assets/vendor-1fb2baaf.js:30:123092
yu@http://10.0.4.64:3120/assets/vendor-1fb2baaf.js:30:108896
vu@http://10.0.4.64:3120/assets/vendor-1fb2baaf.js:30:108824
gu@http://10.0.4.64:3120/assets/vendor-1fb2baaf.js:30:108682
au@http://10.0.4.64:3120/assets/vendor-1fb2baaf.js:30:105486
lu@http://10.0.4.64:3120/assets/vendor-1fb2baaf.js:30:105876
Va@http://10.0.4.64:3120/assets/vendor-1fb2baaf.js:30:46710
ru/<@http://10.0.4.64:3120/assets/vendor-1fb2baaf.js:30:103420

Any help would be appreciated.

rclone errors

When i try and use your rclone fork i get errors when i try and create a directory:

nginx     | 192.168.20.65 - - [30/Aug/2023:14:23:13 +0000] "POST /api/files/makekdir HTTP/1.1" 500 40 "-" "rclone/v1.64.0-beta.7312.b7654e2f8" "-"
server    | [GIN] 2023/08/30 - 14:23:18 | 500 |  225.876308ms |   192.168.20.65 | POST     "/api/files/makekdir"
server    | Error #01: failed to create directories
nginx     | 192.168.20.65 - - [30/Aug/2023:14:23:18 +0000] "POST /api/files/makekdir HTTP/1.1" 500 40 "-" "rclone/v1.64.0-beta.7312.b7654e2f8" "-"
server    | [GIN] 2023/08/30 - 14:23:23 | 500 |  225.658371ms |   192.168.20.65 | POST     "/api/files/makekdir"
server    | Error #01: failed to create directories
2023/08/30 14:23:43 ERROR : /: Dir.Mkdir failed to create directory: HTTP error 500 (500 Internal Server Error) returned body: "{\"error\":\"failed to create directories\"}"
2023/08/30 14:23:43 ERROR : IO error: HTTP error 500 (500 Internal Server Error) returned body: "{\"error\":\"failed to create directories\"}"
2023/08/30 14:23:43 DEBUG : /: >Mkdir: node=<nil>, err=HTTP error 500 (500 Internal Server Error) returned body: "{\"error\":\"failed to create directories\"}"
2023/08/30 14:23:50 DEBUG : : Statfs:
2023/08/30 14:23:50 DEBUG : : >Statfs: stat={Blocks:274877906944 Bfree:274877906944 Bavail:274877906944 Files:1000000000 Ffree:1000000000 Bsize:4096 Namelen:255 Frsize:4096}, err=<nil>
2023/08/30 14:24:00 DEBUG : : Statfs:
2023/08/30 14:24:00 DEBUG : : >Statfs: stat={Blocks:274877906944 Bfree:274877906944 Bavail:274877906944 Files:1000000000 Ffree:1000000000 Bsize:4096 Namelen:255 Frsize:4096}, err=<nil>
2023/08/30 14:24:08 DEBUG : vfs cache RemoveNotInUse (maxAge=3600000000000, emptyOnly=false): item test/linux-ubuntu-mate-20.04.zip not removed, freed 0 bytes
2023/08/30 14:24:08 INFO  : vfs cache: cleaned: objects 1 (was 1) in use 0, to upload 0, uploading 0, total size 0 (was 0)
2023/08/30 14:24:10 DEBUG : : Statfs:
2023/08/30 14:24:10 DEBUG : : >Statfs: stat={Blocks:274877906944 Bfree:274877906944 Bavail:274877906944 Files:1000000000 Ffree:1000000000 Bsize:4096 Namelen:255 Frsize:4096}, err=<nil>

divyam234/rclone: invalid memory address or nil pointer dereference

divyam234/rclone threw this nil pointer error after me recently, not sure if it is of interest, after getting some socket: too many open files, i.e. low level retry 10/10 (error Get "http://192.168.1.xxx:8080/api/uploads/xxx": dial tcp 192.168.1.xxx:8080: socket: too many open files) errors.

I haven't set any ulimit options for the containers, not sure if it is needed.

I'll just leave the strack trace here - note that the error appears to be with rclone, and not teldrive.

And thank you for a most useful tool! :-)

2023/11/25 15:35:25 DEBUG : pacer: low level retry 10/10 (error Get "http://192.168.1.xxx:8080/api/files?name=<....>": dial tcp 192.168.1.xxx:8080: socket: too many open files)
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x10 pc=0x1886a1a]

goroutine 102 [running]:
github.com/rclone/rclone/backend/teldrive.(*Fs).findObject(0xc0005ac2d0, {0x27f9da8?, 0xc000e223c0}, {0xc003da60c0, 0x3d}, {0xc00743e0bd, 0x37})
        github.com/rclone/rclone/backend/teldrive/teldrive.go:395 +0x43a
github.com/rclone/rclone/backend/teldrive.(*Fs).NewObject(0xc0005ac2d0, {0x27f9da8, 0xc000e223c0}, {0xc003cafd50, 0x6d})
        github.com/rclone/rclone/backend/teldrive/teldrive.go:484 +0x59
github.com/rclone/rclone/fs/operations.multiThreadCopy({0x27f9da8?, 0xc000e223c0}, {0x280e448, 0xc0005ac2d0}, {0xc003cafd50, 0x6d}, {0x280c0d8?, 0xc001b0b500}, 0x4, 0xc0071ba140, ...)
        github.com/rclone/rclone/fs/operations/multithread.go:237 +0xf31
github.com/rclone/rclone/fs/operations.(*copy).multiThreadCopy(0xc00795ee10, {0x27f9da8?, 0xc000e223c0?}, {0xc002db9620?, 0x280c0d8?, 0xc001b0b500?})
        github.com/rclone/rclone/fs/operations/copy.go:160 +0x85
github.com/rclone/rclone/fs/operations.(*copy).manualCopy(0xc00795ee10, {0x27f9da8, 0xc000e223c0})
        github.com/rclone/rclone/fs/operations/copy.go:249 +0x425
github.com/rclone/rclone/fs/operations.(*copy).copy(0xc00795ee10, {0x27f9da8, 0xc000e223c0})
        github.com/rclone/rclone/fs/operations/copy.go:302 +0x16c
github.com/rclone/rclone/fs/operations.Copy({0x27f9da8, 0xc000e223c0}, {0x280e448, 0xc0005ac2d0}, {0x0?, 0x0}, {0xc003cafd50, 0x6d}, {0x280c0d8, 0xc001b0b500})
        github.com/rclone/rclone/fs/operations/copy.go:404 +0x425
github.com/rclone/rclone/fs/sync.(*syncCopyMove).pairCopyOrMove(0xc000a28b40, {0x27f9da8, 0xc000e223c0}, 0x0?, {0x280e448, 0xc0005ac2d0}, 0x0?, 0x0?)
        github.com/rclone/rclone/fs/sync/sync.go:446 +0x1f6
created by github.com/rclone/rclone/fs/sync.(*syncCopyMove).startTransfers in goroutine 1
        github.com/rclone/rclone/fs/sync/sync.go:473 +0x45

# rclone --version
rclone v1.64.3
- os/version: unknown
- os/kernel: 4.4.302+ (x86_64)
- os/type: linux
- os/arch: amd64
- go/version: go1.21.4
- go/linking: static
- go/tags: none

Broken right click/context menu on Firefox

Hi
I just realised that it is not possible to right click on uploaded files in Firefox. Instead i get a JS error in the console. Verified it's not an issue on my end by installing a fresh copy on a VM and trying it again there

bruh

Use different address and port

Hi, I was using the compiled version of the apps.
I run it on my Windows PC, and it works flawlessly. I can access it on http://localhost:8080.
But when I run it on my Linux server and seems like my 8080 port is already used, the apps are not able to run.
Is there any way to set the address and port where the service will listen to?
If that was not a feature currently available, would you please add it so we can change the address and port from the .env file?
Thanks!

login error - using docker version

When i try to run it using the docker version -- i get an error after i try to login on the http://ip:8000 page :

nginx      | 192.168.20.71 - - [17/Aug/2023:14:27:51 +0000] "POST /api/auth/login HTTP/1.1" 500 43 "http://192.168.20.65:8000/login?from=%2Fmy-drive" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36" "-"
server     | [GIN] 2023/08/17 - 14:29:18 | 500 |   20.042748ms |   192.168.20.71 | POST     "/api/auth/login"
server     | Error #01: failed to create or update user

net/http: HTTP/1.x transport connection broken error triggers rclone re-downloads, which again can trigger downloadQuotaExceeded

When uploading files to teldrive with rclone, sometimes teldrive repeatedly throws this error for some file uploads, "net/http: HTTP/1.x transport connection broken: http: ContentLength=1048576000 with Body length 0":

2023/12/23 08:37:56 DEBUG : pacer: low level retry 7/10 (error Post "http://192.168.1.5:8080/api/uploads/26f5a8517edb<...uploadid>?channelId=<channelid>&encrypted=false&fileName=<filename>.mp4&partName=82998fe49ab74<...partname>&partNo=2": net/http: HTTP/1.x transport connection broken: http: ContentLength=1048576000 with Body length 0)
2023/12/23 08:37:56 DEBUG : pacer: Rate limited, increasing sleep to 5s

This error triggers a low-level retry in rclone, which means that the source file will now be downloaded again.

Unfortunately, some backends doesn't appreciate this behaviour of downloading the same file rapidly over and over very much, and they will soon throw an error. E.g. the google drive backend throws a 403 with "downloadQuotaExceeded":

Failed to copy: failed to open source object: open file failed: googleapi: Error 403: The download quota for this file has been exceeded., downloadQuotaExceeded

This error means that your google drive account will now be in a 24h cool-down period, before you can use download any files from it again.

The only unusual activity I see in logs/teldrive.log are errrors like this:

{"level":"error","ts":"2023-12-23T07:53:56.132Z","logger":"uploads","msg":"uploadFile","error":"callback: upload part: send upload part 802 RPC: retry middleware skip: rpcDoRequest: rpc error code 400: FILE_PART_SIZE_INVALID","errorVerbose":"callback:\n github.com/gotd/td/telegram.(*Client).Run.func3\n /go/pkg/mod/github.com/gotd/[email protected]/telegram/connect.go:151\n - upload part:\n github.com/gotd/td/telegram/uploader.(*Uploader).bigLoop.func2\n /go/pkg/mod/github.com/gotd/[email protected]/telegram/uploader/big.go:109\n - send upload part 802 RPC:\n github.com/gotd/td/telegram/uploader.(*Uploader).uploadBigFilePart\n /go/pkg/mod/github.com/gotd/[email protected]/telegram/uploader/big.go:38\n - retry middleware skip:\n github.com/divyam234/teldrive/internal/retry.(*retry).Handle.retry.Handle.func1\n /app/internal/retry/retry.go:34\n - rpcDoRequest:\n github.com/gotd/td/internal/mtproto.(*Conn).Invoke\n /go/pkg/mod/github.com/gotd/[email protected]/internal/mtproto/rpc.go:44\n - rpc error code 400: FILE_PART_SIZE_INVALID"}

The default number of low-level retries in rclone is set to 10, it can be lowered to i.e. 3 using this argument:

--low-level-retries 3

A value of 3 seems to be low enough that the ban from the re-downloads will not be triggered, and still high enough that most of the regularly needed retries against the google drive backend will still succeed.

Emby doesnt play a single file

So moved a few files into teldrive, so far so good, emby cant play them, all im getting are the errors below:
r0gu3@server3:/etc/systemd/system$ sudo systemctl status teldrive_vfs.service
● teldrive_vfs.service - Rclone VFS Mount
Loaded: loaded (/etc/systemd/system/teldrive_vfs.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2023-12-03 21:54:09 CET; 43s ago
Process: 12080 ExecStop=/bin/fusermount -uz /mnt/teldrive (code=exited, status=0/SUCCESS)
Process: 12082 ExecStartPre=/bin/sleep 10 (code=exited, status=0/SUCCESS)
Main PID: 12154 (rclone)
Status: "[21:54] vfs cache: objects 0 (was 0) in use 0, to upload 0, uploading 0, total size 0 (was 0)"
Tasks: 12 (limit: 4915)
CGroup: /system.slice/teldrive_vfs.service
└─12154 /usr/bin/rclone mount --user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36 Edg/109.0.1518.70 --config=/home/r0gu3/.config/rclone/rclone.conf --all

Dec 03 21:54:53 server3 rclone[12154]: Media/Filme.Romanesti/Queen.Marie.of.Romania.2019.1080p.AMZN.WEB-DL.DDP.5.1.H.264-SPWEB.mkv: vfs cache: too many errors 11/10: last error: vfs reader: failed to write to cache file: HTTP error 416 (
Dec 03 21:54:53 server3 rclone[12154]: Media/Filme.Romanesti/Queen.Marie.of.Romania.2019.1080p.AMZN.WEB-DL.DDP.5.1.H.264-SPWEB.mkv: vfs cache: failed to kick waiters: vfs reader: failed to write to cache file: HTTP error 416 (416 Request
Dec 03 21:54:53 server3 rclone[12154]: Media/Filme.Romanesti/Queen.Marie.of.Romania.2019.1080p.AMZN.WEB-DL.DDP.5.1.H.264-SPWEB.mkv: vfs cache: failed to _ensure cache vfs reader: failed to write to cache file: HTTP error 416 (416 Request
Dec 03 21:54:53 server3 rclone[12154]: IO error: vfs reader: failed to write to cache file: HTTP error 416 (416 Requested Range Not Satisfiable) returned body: "invalid range: failed to overlap\n"
Dec 03 21:54:53 server3 rclone[12154]: Media/Filme.Romanesti/Queen.Marie.of.Romania.2019.1080p.AMZN.WEB-DL.DDP.5.1.H.264-SPWEB.mkv: vfs cache: downloader: error count now 12: vfs reader: failed to write to cache file: HTTP error 416 (416
Dec 03 21:54:53 server3 rclone[12154]: Media/Filme.Romanesti/Queen.Marie.of.Romania.2019.1080p.AMZN.WEB-DL.DDP.5.1.H.264-SPWEB.mkv: vfs cache: failed to download: vfs reader: failed to write to cache file: HTTP error 416 (416 Requested R
Dec 03 21:54:53 server3 rclone[12154]: Media/Filme.Romanesti/Queen.Marie.of.Romania.2019.1080p.AMZN.WEB-DL.DDP.5.1.H.264-SPWEB.mkv: vfs cache: too many errors 12/10: last error: vfs reader: failed to write to cache file: HTTP error 416 (
Dec 03 21:54:53 server3 rclone[12154]: Media/Filme.Romanesti/Queen.Marie.of.Romania.2019.1080p.AMZN.WEB-DL.DDP.5.1.H.264-SPWEB.mkv: vfs cache: failed to kick waiters: vfs reader: failed to write to cache file: HTTP error 416 (416 Request
Dec 03 21:54:53 server3 rclone[12154]: Media/Filme.Romanesti/Queen.Marie.of.Romania.2019.1080p.AMZN.WEB-DL.DDP.5.1.H.264-SPWEB.mkv: vfs cache: failed to _ensure cache vfs reader: failed to write to cache file: HTTP error 416 (416 Request
Dec 03 21:54:53 server3 rclone[12154]: IO error: vfs reader: failed to write to cache file: HTTP error 416 (416 Requested Range Not Satisfiable) returned body: "invalid range: failed to overlap\n"

I am on the latest teldrive and did the database update on neon

rclone copy broken

  1. upload a file on the teldrive webgui
  2. download it on the teldrive webgui
  3. list it with rclone; rclone ls teldrive:
  4. try to download it with rclone; rclone copy teldrive:

webgui download works, list with rclone works, but copy through the following error;

rclone;

user@linux: ./docker/teldrive$ rclone ls teldrive:
2922470 test.jpg
user@linux: ./docker/teldrive$ rclone copy teldrive: .
2023/11/19 22:50:05 ERROR : test.jpg: Failed to copy: failed to open source object: HTTP error 400 (400 Bad Request) returned body: "invalid hash\n"
2023/11/19 22:50:05 ERROR : Attempt 1/3 failed with 1 errors and: failed to open source object: HTTP error 400 (400 Bad Request) returned body: "invalid hash\n"
2023/11/19 22:50:06 ERROR : test.jpg: Failed to copy: failed to open source object: HTTP error 400 (400 Bad Request) returned body: "invalid hash\n"
2023/11/19 22:50:06 ERROR : Attempt 2/3 failed with 1 errors and: failed to open source object: HTTP error 400 (400 Bad Request) returned body: "invalid hash\n"
2023/11/19 22:50:07 ERROR : test.jpg: Failed to copy: failed to open source object: HTTP error 400 (400 Bad Request) returned body: "invalid hash\n"
2023/11/19 22:50:07 ERROR : Attempt 3/3 failed with 1 errors and: failed to open source object: HTTP error 400 (400 Bad Request) returned body: "invalid hash\n"
2023/11/19 22:50:07 Failed to copy: failed to open source object: HTTP error 400 (400 Bad Request) returned body: "invalid hash\n"

teldrive - rclone download:
teldrive | [GIN] 2023/11/19 - 21:50:07 | 400 | 101.728746ms | xxxxxxxxxxxx| GET "/api/files/test.jpg?hash=72a203c4225f2a1f1601f2bb15f574ef"

teldrive - webgui download:
teldrive | [GIN] 2023/11/19 - 21:53:23 | 200 | 1.031847122s | xxxxxxxxxxxx | GET "/api/files/test.jpg?hash=37bb8dba5ce6b11456c640ac248f3751&d=1"

Maybe the only question is, why are the hash values are different?

Can't login with 2FA enabled

I'm using docker, I can't login to teldrive with phone number or QR code, I have 2FA enabled on telegram (I suppose it is that, because it doesn't prompt me for my password at login).

After trying to login on the teldrive web interface I receive a telegram official message that says "Incomplete login attempt at..."

it is almost impossible to upload files over 200M

it is almost impossible to upload files over 200M not to mention upload movies over 2 or 5 Gigas only uploads slowly but correctly small files like mp3 or pdfs,I have 5 bots in the UI settings and all to an exclusive channel for storage in telegram,if anyone knows how I should configure teledrive comment, I also noticed that you can not move between clouds in sync or copy mode as you normally can with onedrive,dropbox,google drive or mega unless you can use google colab for its condition of localhost that would have to have a database inside the virtual machine,I hope someone explain it so that you can take advantage of the unlimited storage of telegram.

rclone sync azure:docker/films/a telegram:dumpster/films/a --transfers 1 --checkers 3 --fast-list --exclude .DS_Store -P
rclone sync /media/kingston/mate/ubuntu-22.04.3-live-server-amd64.iso telegram:rsync --transfers 2 --fast-list -P --log-file rclone.log

2024/01/03 22:10:51 ERROR : ubuntu-22.04.3-live-server-amd64.iso: Failed to copy: multi-thread copy: failed to close object after copy: uploaded failed
2024/01/03 22:10:51 ERROR : Attempt 1/3 failed with 1 errors and: multi-thread copy: failed to close object after copy: uploaded failed
2024/01/03 22:17:30 ERROR : ubuntu-22.04.3-live-server-amd64.iso: Failed to copy: multi-thread copy: failed to close object after copy: uploaded failed
2024/01/03 22:17:30 ERROR : Attempt 2/3 failed with 1 errors and: multi-thread copy: failed to close object after copy: uploaded failed
2024/01/03 22:22:12 ERROR : ubuntu-22.04.3-live-server-amd64.iso: Failed to copy: multi-thread copy: failed to close object after copy: uploaded failed
2024/01/03 22:22:12 ERROR : Attempt 3/3 failed with 1 errors and: multi-thread copy: failed to close object after copy: uploaded failed
2024/01/03 22:22:12 Failed to sync: multi-thread copy: failed to close object after copy: uploaded failed

Docker hub image

Hi, if you could make this available on Docker Hub I think it will be much more easier for a noob like me to run it. Please consider. Thanks!

Various errors trying to upload large files

Whenever I try to upload a file larger than 1GB, it has a ERR_CONNECTION_RESET error on the website. On rclone, there's two main errors:

  • "{\"code\":500,\"message\":\"callback: upload part: send upload part 1 RPC: retry middleware skip: rpcDoRequest: rpc error code 400: FILE_PARTS_INVALID\"}"
    • This occurs if it's able to even upload everything
  • multi-thread copy: failed to close object after copy: uploaded failed
    • This occurs partway in, usually around the ~150MB mark. It slows down to a crawl and then errors out.

I'm not sure if it's just my internet but I'm able to upload fine to qiwi and everything else. I'm able to upload smaller files.

improvements

@divyam234 Your project is wonderful, and I'm really enjoying testing it, but I'm sending you some suggestions to improve your application even more.

1 - Would you be able to implement the function so that when you upload a photo or video, it already generates a thumbnail on the channel?
2 - simple http direct links, using telegram servers for download
3 - share a folder or file, leaving it public (open to everyone who has the link) or to the recipient's @Do telegram
example: I share folder A only for you @you have access and will see it in the list of shared folders
4 - upload in drag and drop
5 - fix the options menu that appears when clicking with the right mouse button in firefox and other browsers, because the options only appear in CHROME.
it would be cool if you put all the options in the gear options or a new button next to the gear
6 - support multi channels for upload
7 - translation into other languages (in my case Brazilian Portuguese)

Multi Channel upload not working

I have recreated this issue many times on a totally fresh server, newly created database & and clean teldrive docker container to ensure that its not any sort of issue on my end. I have created 2 new channels called demo1 and demo2 and will be adding 2 bots in each of the channel for this test & will try to upload demo1.mp4 and demo2.mp4 in each of the channel respectively

  1. Once the teldrive container is running successfully, i open the web UI and set demo1 channel as default and add 2 bots in it, then set demo2 channel as default and 2 bots in it
  2. i set demo1 channel as default and upload demo1.mp4 through web - successful
  3. i set demo2 channel as default and upload demo2.mp4 through web - callback: rpcDoRequest: rpc error code 400: CHANNEL_INVALID

TS video file

Hi. I'm facing an issue where I'm unable to play video files with the .ts extension. It seems that the system is mistaking them for TypeScript files. I believe checking the MIME type could potentially resolve this problem. Thank you.

Video playback incorrect aspect ratio

Hi, I've got some video files with different aspect ratio, but seems like the player force them the play on exactly 1280x720px. It would be great if the player can show the video in its correct aspect ratio. Scale down to fit 1280px width will also be cool. And if the player can support subtitles/captions that will be also superb. Thanks!

after all configurations how to mount teldrive using rclone

i have been trying to mount teldrive with rclone maybe im doing it wrong can sombody tell me how to do it,it is runing fine via web UI but its almost imposible to upload files so which configuration will work with rclone be specific from the rclone config what select and ahead.

run it without docker

can i run this without docker? if yes can you makes how to do it in readme? because i try the docker compose and it doesnt work for me

/recent throws Unexpected Application Error! / Invalid number

I noticed this error today, trying to access /recent.

The version is the latest docker-compose pull version.

Besides /recent, everything appears to function normally.

# docker-compose pull
[+] Running 6/6
 ⠿ server Pulled                                                                                                                                        3.8s
   ⠿ 4e6669f810e6 Pull complete                                                                                                                         0.7s
   ⠿ e4df8259cef8 Pull complete                                                                                                                         0.8s
   ⠿ 84c8c6aa3c1f Pull complete                                                                                                                         0.9s
   ⠿ 94acd334c8f9 Pull complete                                                                                                                         1.0s
   ⠿ a7f15a7ee3a9 Pull complete                                                                                                                         2.4s
# docker-compose up --detach
[+] Running 1/1

http://192.168.1.5:8080/recent

Unexpected Application Error!
Invalid number

Ile@http://192.168.1.5:8080/assets/vendor-YuVkmcbq.js:1105:1119
formatFileSize@http://192.168.1.5:8080/assets/vendor-YuVkmcbq.js:1405:26003
bD/<@http://192.168.1.5:8080/assets/vendor-YuVkmcbq.js:1405:25791
useMemo@http://192.168.1.5:8080/assets/vendor-YuVkmcbq.js:38:25868
Rt.useMemo@http://192.168.1.5:8080/assets/vendor-YuVkmcbq.js:9:6208
bD@http://192.168.1.5:8080/assets/vendor-YuVkmcbq.js:1405:25705
Rpe<@http://192.168.1.5:8080/assets/vendor-YuVkmcbq.js:1415:13198
V3@http://192.168.1.5:8080/assets/vendor-YuVkmcbq.js:38:19539
l2@http://192.168.1.5:8080/assets/vendor-YuVkmcbq.js:40:3117
LT@http://192.168.1.5:8080/assets/vendor-YuVkmcbq.js:40:2329
MC@http://192.168.1.5:8080/assets/vendor-YuVkmcbq.js:40:1871
nk@http://192.168.1.5:8080/assets/vendor-YuVkmcbq.js:40:47329
JT@http://192.168.1.5:8080/assets/vendor-YuVkmcbq.js:40:39770
v_@http://192.168.1.5:8080/assets/vendor-YuVkmcbq.js:40:39698
Jm@http://192.168.1.5:8080/assets/vendor-YuVkmcbq.js:40:39548
b2@http://192.168.1.5:8080/assets/vendor-YuVkmcbq.js:40:35912
XT@http://192.168.1.5:8080/assets/vendor-YuVkmcbq.js:40:34861
x@http://192.168.1.5:8080/assets/vendor-YuVkmcbq.js:25:1576
D@http://192.168.1.5:8080/assets/vendor-YuVkmcbq.js:25:1942

Send mp4 as a streaming video

This will be useful if random access to the file can be implemented. At the moment me have to wait for it to download to that point.

Issues with >100MB on Cloudflare

When uploading files larger than 100MB to TelDrive, a 413 error is thrown, which means the entity is too large.
No such problems on NextCloud.

upload file issue - channel_invalid

When trying to upload i get an error

server    | [GIN] 2023/08/18 - 07:53:53 | 500 |  325.125509ms |   192.168.20.71 | POST     "/api/uploads/-428729712?fileName=vce-config.iso&partNo=1&totalparts=1"
server    | Error #01: failed to fetch channel: rpcDoRequest: rpc error code 400: CHANNEL_INVALID

my .env file has a channel_id defiend:

CHANNEL_ID=6190248***

I got it via the @MissRose_bot insturctions.

Problem uploading files and question

Hi, after i do login into web interface i can create new folders but i can't upload any file, i receive this API error:

2023/08/17 17:29:12 [Recovery] 2023/08/17 - 17:29:12 panic recovered:
runtime error: invalid memory address or nil pointer dereference
/usr/local/go/src/runtime/panic.go:261 (0x44f7b7)
/usr/local/go/src/runtime/signal_unix.go:861 (0x44f785)
/app/utils/tgclient.go:175 (0x135d120)
/app/services/upload.service.go:70 (0x135c571)
/app/routes/upload.go:34 (0x135f985)
/go/pkg/mod/github.com/gin-gonic/[email protected]/context.go:174 (0x135f4db)
/app/routes/middleware.go:40 (0x135f413)
/go/pkg/mod/github.com/gin-gonic/[email protected]/context.go:174 (0x130704a)
/go/pkg/mod/github.com/gin-gonic/[email protected]/logger.go:172 (0x1370084)
/go/pkg/mod/github.com/gin-gonic/[email protected]/context.go:174 (0x1313f59)
/go/pkg/mod/github.com/gin-gonic/[email protected]/recovery.go:102 (0x1313f47)
/go/pkg/mod/github.com/gin-gonic/[email protected]/context.go:174 (0x13130fd)
/go/pkg/mod/github.com/gin-gonic/[email protected]/logger.go:240 (0x13130cc)
/go/pkg/mod/github.com/gin-gonic/[email protected]/context.go:174 (0x13121ba)
/go/pkg/mod/github.com/gin-gonic/[email protected]/gin.go:620 (0x1311e4d)
/go/pkg/mod/github.com/gin-gonic/[email protected]/gin.go:576 (0x131197c)
/usr/local/go/src/net/http/server.go:2938 (0x770a6d)
/usr/local/go/src/net/http/server.go:2009 (0x76c953)
/usr/local/go/src/runtime/asm_amd64.s:1650 (0x46b5e0)

And one question i have, when i can upload, download and delete files, how can i use this middleware with rclone?

thanks!!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.