All data traversing the VM when using External Storage (Backblaze B2)

My server is CentOS 7 and my Nextcloud is 27.0.0 running on Docker behind Traefik
I’m using the Nextcloud Client for Mac 3.9.0
I realized that all data transfer seems to traverse the NC server.
My storage is Backblaze EC2, shouldn’t files go straight from the client to Backblaze?
I use ‘nload’ on my CentOS VM, and every time I upload or download a file to NC via the Client, I see the bandwidth rising on the server and the amount of data equal to the size of the file I’m supposed to be transferring to Backblaze.

One of the points of having external data storage would be to take advantage of the storage price, the other point would be to avoid the bandwidth transfer costs on the VM (which is hosted somewhere else)
Is the data supposed to traverse the NC VM even if the storage backend is external?
Shouldn’t the data go straight from the Client to the storage backend, with the server having only some sort of metadata with pointers, etc?

Yes. The behavior you’re seeing matches the current implementation.

If you’re actually using it as External Storage, you actually could access it directly (albeit with trade-offs that aren’t acceptable in many use cases). But I suspect you’re actually using B2 as Primary Storage (though your query could apply in either case).

Keep in mind that the NC Client you’re running on your Mac is only one of the ways of accessing files hosted by Nextcloud. WebDAV clients don’t have any awareness of how to connect to S3 object storage repositories (or any other types of object stores for that matter).

So it’s not quite as easy as you’re thinking, unless one drops support for all other access methods in NC


Understood, I will keep it in mind when projecting my monthly costs.
Thanks for the insight!

1 Like