Yandex disk API access is very slow

I bought Yandex Mail 360 service, which gives me another 100GB disk space.

But, the access to Yandex disk via API is very slow. I tried it with two ways from one of my VPS.

  • access with yandex disk plugin of rclone, whose endpoint is “cloud-api.yandex.com
  • access with webdav protocol, whose endpoint is “webdav.yandex.ru

Unfortunately, both ways failed to work.

I uploaded a file of 245MB to Yandex disk with the methods above, they can’t finish the jobs in about 1+ hour.

The network connection from my VPS to their service endpoints has no problem. As you see below:

$ ping webdav.yandex.ru -c 10 
PING webdav.yandex.ru (213.180.204.148) 56(84) bytes of data. 
64 bytes from disk-webdav.stable.qloud-b.yandex.net (213.180.204.148):  icmp_seq=1 ttl=247 time=40.9 ms 
64 bytes from disk-webdav.stable.qloud-b.yandex.net (213.180.204.148):  icmp_seq=2 ttl=247 time=40.9 ms 
64 bytes from disk-webdav.stable.qloud-b.yandex.net (213.180.204.148):  icmp_seq=3 ttl=247 time=40.9 ms 
64 bytes from disk-webdav.stable.qloud-b.yandex.net (213.180.204.148):  icmp_seq=4 ttl=247 time=40.9 ms 
64 bytes from disk-webdav.stable.qloud-b.yandex.net (213.180.204.148):  icmp_seq=5 ttl=247 time=41.0 ms 
64 bytes from disk-webdav.stable.qloud-b.yandex.net (213.180.204.148):  icmp_seq=6 ttl=247 time=40.9 ms 
64 bytes from disk-webdav.stable.qloud-b.yandex.net (213.180.204.148):  icmp_seq=7 ttl=247 time=41.0 ms 
64 bytes from disk-webdav.stable.qloud-b.yandex.net (213.180.204.148):  icmp_seq=8 ttl=247 time=40.9 ms 
64 bytes from disk-webdav.stable.qloud-b.yandex.net (213.180.204.148):  icmp_seq=9 ttl=247 time=40.9 ms 
64 bytes from disk-webdav.stable.qloud-b.yandex.net (213.180.204.148):  icmp_seq=10 ttl=247 time=40.9 ms 
 
--- webdav.yandex.ru ping statistics --- 
10 packets transmitted, 10 received, 0% packet loss, time 9008ms 
rtt min/avg/max/mdev = 40.964/40.988/41.044/0.182 ms 
$ ping cloud-api.yandex.com -c 10 
PING api.disk.yandex.net (213.180.204.127) 56(84) bytes of data. 
64 bytes from cloud-api.yandex.net (213.180.204.127): icmp_seq=1 ttl=54  time=40.6 ms 
64 bytes from cloud-api.yandex.net (213.180.204.127): icmp_seq=2 ttl=54  time=40.7 ms 
64 bytes from cloud-api.yandex.net (213.180.204.127): icmp_seq=3 ttl=54  time=40.6 ms 
64 bytes from cloud-api.yandex.net (213.180.204.127): icmp_seq=4 ttl=54  time=40.7 ms 
64 bytes from cloud-api.yandex.net (213.180.204.127): icmp_seq=5 ttl=54  time=40.7 ms 
64 bytes from cloud-api.yandex.net (213.180.204.127): icmp_seq=6 ttl=54  time=40.7 ms 
64 bytes from cloud-api.yandex.net (213.180.204.127): icmp_seq=7 ttl=54  time=40.6 ms 
64 bytes from cloud-api.yandex.net (213.180.204.127): icmp_seq=8 ttl=54  time=40.7 ms 
64 bytes from cloud-api.yandex.net (213.180.204.127): icmp_seq=9 ttl=54  time=40.7 ms 
64 bytes from cloud-api.yandex.net (213.180.204.127): icmp_seq=10 ttl=54  time=40.7 ms 
 
--- api.disk.yandex.net ping statistics --- 
10 packets transmitted, 10 received, 0% packet loss, time 9015ms 
rtt min/avg/max/mdev = 40.671/40.723/40.776/0.204 ms 

When uploading, the command ‘vnstat’ shows the bandwidth usage for transfer out is only 139.28 kbit/s. This really sucks.

eth0  /  traffic statistics 
 
                           rx         |       tx 
--------------------------------------+------------------ 
  bytes                    31.21 MiB  |       49.41 MiB 
--------------------------------------+------------------ 
          max             537 kbit/s  |    19.34 Mbit/s 
      average           87.96 kbit/s  |   139.28 kbit/s 
          min               3 kbit/s  |        0 kbit/s 
--------------------------------------+------------------ 
  packets                     525460  |           10556 
--------------------------------------+------------------ 
          max                924 p/s  |         121 p/s 
      average                176 p/s  |           3 p/s 
          min                  5 p/s  |           0 p/s 
--------------------------------------+------------------ 
  time                 49.60 minutes 

Then I tried their official client for Linux, the help page is here. The result is surprised.

Yandex disk’s linux client works very fast. I uploaded a file about 1GB, it got finished in several minutes.

So in conclusion:

  • Don’t use API to access Yandex disk, neither rclone nor webdav. Yandex may have bandwidth limits on it.
  • Use their official clients, for instance, Mac, Windows and Linux’s.