Last I tried B2 with IC4, I had exceptions in IN_DEV mode. I assume you have thoroughly tested B2 IN_DEV now and everything would just work?
I think the issue was that IC4 was setting an ACL on an object in the bucket when B2 only supports public or private buckets and no ability to set permissions on a path within the bucket.
Also, I remember some issues with downloading attachments vs just loading as an image using the Bacblaze file URLs.
I worked around these issues by just implementing my own B2 storage method using the AWS S3 SDK which avoided all compatibility issues with Backblaze’s B2 S3 API. Big advantage, especially if uploading multi-gigabytes files to IC4’s chunked uploads and then uploading the temp file to B2.
If I had to do it again, I would just use flysystem composer package and flexibly store my files anywhere I wanted.
Finally, I should disclose I’m a huge shareholder of Backblaze and Cloudflare since both these services don’t lock you into huge AWS storage and bandwidth bills if you ever get to a scale where infrastructure costs matters a lot.
Not currently using IC4 on any of my sites, but hope to deploy an IC5 app sometime in 2025. This app will require long lived files to be stored in one bucket and short lived files (less than 90 days) in another bucket.
The files will be uploaded to a 1TB Cloudflare R2 bucket and offloaded to a Backblaze B2 bucket as they age and the Cloudflare bucket cache nears the 1TB limit.
Doing this because Cloudflare allows free accounts to serve unlimited bandwidth out of an R2 bucket for no bandwidth charges. Backblaze B2 has free bandwidth up to 3 times the GBs stored so it is very economical for older files that still need to be accessible online.