We have shipped an improvement to make your uploads faster ⚡️
How uploads happened before
When uploading a file, we fetched a list of URLs from the server to
to. Then, the encrypted files / file parts were uploaded to those URLs, that are
hosted on storage servers located in Europe.
We noticed that this could be improved by proxying data through Cloudflare Workers that are deployed across the world, there by ensuring proximity to our customers. There was also the added advantage of Cloudflare's great network speeds.
How uploads happen now
Now, we upload the same encrypted file / file parts to the Cloudflare Worker rather than directly uploading to our servers in Europe. The Worker then uploads these to our servers.
Even though this has increased the complexity of uploads on the backend, this has made our uploads faster due to the Workers being closer and having greater network speeds. This gain is even more pronounced for large multi-part uploads.
We got the following results from a sample test using the same set of files:
|2.6 MB||5.3 s||4.1 s||23.42%|
|2.7 MB||4.3 s||5.6 s||28.88%|
|3.3 MB||8.1 s||8.1 s||0.46%|
|23 MB||23 s||21 s||8.60%|
|141 MB||119 s||82 s||31.20%|
|354 MB||306 s||217 s||29.01%|
This change is currently live on our web and desktop apps and we will be bringing it to our mobile apps soon. We hope you'll be happy to see faster uploads! 😊
If you'd like to hear more about our performance challenges, follow us on Twitter.
Or if you'd like to hang out with a bunch of engineers building an e2ee photo storage service, come say hello on Discord.