Jottacloud - Getting slow download speeds with rclone

What is the problem you are having with rclone?

I have been using rclone for mounting my Jottacloud and using this for my PLEX server for over a year now. Recently, I have started to experience slow download speeds with rclone, around 2-5MB/s, which is not ideal for streaming media. Usually I have gotten close to my download speed around 350Mb/s.

If I download directly from Jottacloud's webpage I get full speeds.

I have tried upgrading to the latest version of rclone and updated the token several times. I have tested on two different computers on completly different networks (one is a VPS in another country). I have also tested with two different Jottacloud accounts (one Telia Sky, one Jottacloud), and I have the same issue.

Run the command 'rclone version' and share the full output of the command.

rclone v1.59.1
- os/version: Microsoft Windows Server 2016 Datacenter 1607 (64 bit)
- os/kernel: 10.0.14393.4946 (x86_64)
- os/type: windows
- os/arch: amd64
- go/version: go1.18.5
- go/linking: static
- go/tags: cmount

Which cloud storage system are you using? (eg Google Drive)

Jottacloud / Telia Sky

The command you were trying to run (eg rclone copy /tmp remote:tmp)

rclone mount --vfs-cache-mode writes "Telia Sky": Z:

The rclone config contents with secrets removed.

[Jottacloud]
type = jottacloud
configVersion = 0
client_id = jottacli
client_secret = 
tokenURL = https://id.jottacloud.com/auth/realms/jottacloud/protocol/openid-connect/token
token = {"access_token":""}
username = 
device = Jotta
mountpoint = Archive
password = 
auth_code = 

[Telia Sky]
type = jottacloud
configVersion = 1
client_id = jottacli
client_secret = 
tokenURL = https://sky-auth.telia.no/auth/realms/get/protocol/openid-connect/token
token = {"access_token":""}
username = 
device = Jotta
mountpoint = Archive

A log from the command with the -vv flag

2022/08/19 20:37:32 DEBUG : rclone: Version "v1.59.1" starting with parameters ["rclone" "mount" "--vfs-cache-mode" "writes" "-vv" "Telia Sky:" "Z:"]
2022/08/19 20:37:32 DEBUG : Creating backend with remote "Telia Sky:"
2022/08/19 20:37:32 DEBUG : Using config file from "C:\\Users\\Administrator\\AppData\\Roaming\\rclone\\rclone.conf"
2022/08/19 20:37:33 INFO  : jottacloud root '': poll-interval is not supported by this remote
2022/08/19 20:37:33 DEBUG : vfs cache: root is "C:\\Users\\Administrator\\AppData\\Local\\rclone"
2022/08/19 20:37:33 DEBUG : vfs cache: data root is "\\\\?\\C:\\Users\\Administrator\\AppData\\Local\\rclone\\vfs\\Telia Sky"
2022/08/19 20:37:33 DEBUG : vfs cache: metadata root is "\\\\?\\C:\\Users\\Administrator\\AppData\\Local\\rclone\\vfsMeta\\Telia Sky"
2022/08/19 20:37:33 DEBUG : Creating backend with remote "C:/Users/Administrator/AppData/Local/rclone/vfs/Telia Sky/"
2022/08/19 20:37:33 DEBUG : fs cache: renaming cache item "C:/Users/Administrator/AppData/Local/rclone/vfs/Telia Sky/" to be canonical "//?/C:/Users/Administrator/AppData/Local/rclone/vfs/Telia Sky/"
2022/08/19 20:37:33 DEBUG : Creating backend with remote "C:/Users/Administrator/AppData/Local/rclone/vfsMeta/Telia Sky/"
2022/08/19 20:37:33 DEBUG : fs cache: renaming cache item "C:/Users/Administrator/AppData/Local/rclone/vfsMeta/Telia Sky/" to be canonical "//?/C:/Users/Administrator/AppData/Local/rclone/vfsMeta/Telia Sky/"
2022/08/19 20:37:33 DEBUG : Network mode mounting is disabled
2022/08/19 20:37:33 DEBUG : Mounting on "Z:" (Telia Sky")
2022/08/19 20:37:33 INFO  : vfs cache: cleaned: objects 0 (was 0) in use 0, to upload 0, uploading 0, total size 0 (was 0)
2022/08/19 20:37:33 DEBUG : jottacloud root '': Mounting with options: ["-o" "attr_timeout=1" "-o" "uid=-1" "-o" "gid=-1" "--FileSystemName=rclone" "-o" "volname=Telia Sky"]
2022/08/19 20:37:33 DEBUG : jottacloud root '': Init:
2022/08/19 20:37:33 DEBUG : jottacloud root '': >Init:
2022/08/19 20:37:33 DEBUG : /: Statfs:
2022/08/19 20:37:33 DEBUG : /: >Statfs: stat={Bsize:4096 Frsize:4096 Blocks:286565249485 Bfree:274877906944 Bavail:274877906944 Files:1000000000 Ffree:1000000000 Favail:0 Fsid:0 Flag:0 Namemax:255}, errc=0
2022/08/19 20:37:33 DEBUG : /: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/08/19 20:37:33 DEBUG : /: >Getattr: errc=0
2022/08/19 20:37:33 DEBUG : /: Readlink:
2022/08/19 20:37:33 DEBUG : /: >Readlink: linkPath="", errc=-40
The service rclone has been started.
2022/08/19 20:37:33 DEBUG : /: Statfs:
2022/08/19 20:37:33 DEBUG : /: >Statfs: stat={Bsize:4096 Frsize:4096 Blocks:286565249485 Bfree:274877906944 Bavail:274877906944 Files:1000000000 Ffree:1000000000 Favail:0 Fsid:0 Flag:0 Namemax:255}, errc=0
2022/08/19 20:37:33 DEBUG : /: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/08/19 20:37:33 DEBUG : /: >Getattr: errc=0
2022/08/19 20:37:33 DEBUG : /: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/08/19 20:37:33 DEBUG : /: >Getattr: errc=0
2022/08/19 20:37:33 DEBUG : /: Opendir:
2022/08/19 20:37:33 DEBUG : /: OpenFile: flags=O_RDONLY, perm=-rwxrwxrwx
2022/08/19 20:37:33 DEBUG : /: >OpenFile: fd=/ (r), err=<nil>
2022/08/19 20:37:33 DEBUG : /: >Opendir: errc=0, fh=0x0
2022/08/19 20:37:33 DEBUG : /: Releasedir: fh=0x0
2022/08/19 20:37:33 DEBUG : /: >Releasedir: errc=0
2022/08/19 20:37:33 DEBUG : /: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/08/19 20:37:33 DEBUG : /: >Getattr: errc=0
2022/08/19 20:37:33 DEBUG : /: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/08/19 20:37:33 DEBUG : /: >Getattr: errc=0
2022/08/19 20:37:33 DEBUG : /: Opendir:
2022/08/19 20:37:33 DEBUG : /: OpenFile: flags=O_RDONLY, perm=-rwxrwxrwx
2022/08/19 20:37:33 DEBUG : /: >OpenFile: fd=/ (r), err=<nil>
2022/08/19 20:37:33 DEBUG : /: >Opendir: errc=0, fh=0x0
2022/08/19 20:37:33 DEBUG : /: Releasedir: fh=0x0
2022/08/19 20:37:33 DEBUG : /: >Releasedir: errc=0
2022/08/19 20:37:33 DEBUG : /: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/08/19 20:37:33 DEBUG : /: >Getattr: errc=0
2022/08/19 20:37:33 DEBUG : /: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/08/19 20:37:33 DEBUG : /: >Getattr: errc=0
2022/08/19 20:37:33 DEBUG : /: Opendir:
2022/08/19 20:37:33 DEBUG : /: OpenFile: flags=O_RDONLY, perm=-rwxrwxrwx
2022/08/19 20:37:33 DEBUG : /: >OpenFile: fd=/ (r), err=<nil>
2022/08/19 20:37:33 DEBUG : /: >Opendir: errc=0, fh=0x0
2022/08/19 20:37:33 DEBUG : /: Releasedir: fh=0x0
2022/08/19 20:37:33 DEBUG : /: >Releasedir: errc=0
2022/08/19 20:37:36 DEBUG : /autorun.inf: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/08/19 20:37:36 DEBUG : /autorun.inf: >Getattr: errc=-2
2022/08/19 20:37:36 DEBUG : /autorun.inf: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/08/19 20:37:36 DEBUG : /autorun.inf: >Getattr: errc=-2
2022/08/19 20:37:36 DEBUG : /autorun.inf: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/08/19 20:37:36 DEBUG : /autorun.inf: >Getattr: errc=-2
2022/08/19 20:37:36 DEBUG : /: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/08/19 20:37:36 DEBUG : /: >Getattr: errc=0
2022/08/19 20:37:36 DEBUG : /: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/08/19 20:37:36 DEBUG : /: >Getattr: errc=0
2022/08/19 20:37:36 DEBUG : /: Opendir:
2022/08/19 20:37:36 DEBUG : /: OpenFile: flags=O_RDONLY, perm=-rwxrwxrwx
2022/08/19 20:37:36 DEBUG : /: >OpenFile: fd=/ (r), err=<nil>
2022/08/19 20:37:36 DEBUG : /: >Opendir: errc=0, fh=0x0
2022/08/19 20:37:36 DEBUG : /: Releasedir: fh=0x0
2022/08/19 20:37:36 DEBUG : /: >Releasedir: errc=0
2022/08/19 20:37:36 DEBUG : /AutoRun.inf: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/08/19 20:37:36 DEBUG : /AutoRun.inf: >Getattr: errc=-2
2022/08/19 20:37:36 DEBUG : /: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/08/19 20:37:36 DEBUG : /: >Getattr: errc=0
2022/08/19 20:37:36 DEBUG : /: Getattr: fh=0xFFFFFFFFFFFFFFFF
2022/08/19 20:37:36 DEBUG : /: >Getattr: errc=0
2022/08/19 20:37:36 DEBUG : /: Opendir:
2022/08/19 20:37:36 DEBUG : /: OpenFile: flags=O_RDONLY, perm=-rwxrwxrwx
2022/08/19 20:37:36 DEBUG : /: >OpenFile: fd=/ (r), err=<nil>
2022/08/19 20:37:36 DEBUG : /: >Opendir: errc=0, fh=0x0
2022/08/19 20:37:36 DEBUG : /: Statfs:
2022/08/19 20:37:36 DEBUG : /: >Statfs: stat={Bsize:4096 Frsize:4096 Blocks:286565249485 Bfree:274877906944 Bavail:274877906944 Files:1000000000 Ffree:1000000000 Favail:0 Fsid:0 Flag:0 Namemax:255}, errc=0
2022/08/19 20:37:36 DEBUG : /: Releasedir: fh=0x0
2022/08/19 20:37:36 DEBUG : /: >Releasedir: errc=0

hi,
might be easier to test using rclone copy to download a single file.

The "Jottacloud" remote is configured with "Legacy authentication"? If possible, maybe you should try "Standard authentication"?

And do you have an impression of this being related to rclone versions or not? I wouldn't think so, but you could test with a couple of older versions just to check. And yes, test with copy to get better stats.

Mine became very slow too. Basically up to ~10 Mbps per 1 download stream. Maybe they restricted speed per 1 download stream? It is known that they progressively restrict upload stream speed if you go over 5 TB (with personal plan). I wonder which users are affected by such download stream speed restriction or is it some kind of bug. Their CLI tool downloads files very fast though. Luckily, you can make full file downloads significantly faster by changing --multi-thread-streams and --multi-thread-cutoff values so there would be more concurrent download streams in parallel. Unfortunately that multi-threaded download doesn't work for mounts. So you will be forced to download higher bitrate files in full. That feature have yet to be implemented for rclone.

You gave me one unexpected idea. I think I found a reason why it happens. The most likely reason is that Telia Company probably artificially limit download speed from Jottacloud somewhere in their network. My ISP belongs to their network. Your Jottacloud access probably goes through Telia network too. I tried rclone mount with VPN and the speed change is dramatic. So you may get significant speed increase if you would use rclone mount with VPN. If it doesn't help, then you probably need ask Telia to see if there is some kind of download speed limiter applied for downloads from Jottacloud.

Anyway, I still would really like to get multi-threaded download for mounts feature. VPN is not very convenient solution. I hope @ncw will work with it in the near future.