Comment by vishnumohandas
5 years ago
Pre-signed URLs generated with B2's S3 APIs are incompatible with Cloudflare at the moment. We are working around this by using a Cloudflare Worker to proxy data from B2 to the client. This is currently free if you're on the Bundled plan and Cloudflare's support has promised that when they decide to start charging, they will alert us in advance.
Interestingly, Workers Unbound charges 0.045/GB which is more than B2's 0.01/GB.
A viable long term alternative could be Wasabi that offers free egress in return for a $6/TB plan. But we're waiting to see how things pan out before executing an expensive migration.
When you say incompatible, are you talking about the cache not working or something else? How are you working around this using workers?
B2 documentation suggests that after adding a CNAME (eg. cdn.ente.io) for their bucket endpoint (eg. bucket.s3.eu-central-003.backblazeb2.com), you will be able to replace the latter with the former. This breaks with the native B2 APIs with the following error:
```
{
}
```
The last I checked was a few months ago, not sure if things have been fixed now.
With Workers, we simply fetch the remote resource from B2 and return it back to the client, acting as a thin proxy.